public override DateTime CalculateDate(DateTime start, DateTime end)
{
for (var year = start.Year; year <= end.Year; year++)
{
var proposed = ProposeDate(year);
if (proposed >= start && proposed <= end)
{
return proposed;
}
}
throw new InvalidOperationException(string.Format(CultureInfo.InvariantCulture,
"Cannot find a suitable date between {0} and {1}", start, end));
}