public static string IsValid(DateTime? earlierDate, DateTime? laterDate)
{
DateTime nonNullEarlierDate = earlierDate ?? DateTime.MinValue;
DateTime nonNullLaterDate = laterDate ?? DateTime.MaxValue;
if (nonNullLaterDate.Hour == 0 && nonNullLaterDate.Minute == 0)
nonNullLaterDate = nonNullLaterDate.AddDays(1).Subtract(new TimeSpan(0, 0, 1, 0));
if (nonNullEarlierDate.Date == nonNullLaterDate.Date && nonNullLaterDate.Date != nonNullLaterDate &&
nonNullEarlierDate > nonNullLaterDate)
{
return "Time on {0} cannot precede time on {1}";
}
if (nonNullEarlierDate > nonNullLaterDate)
{
return "{0} cannot precede {1}";
}
return null;
}