protected DateTime NextCheckDate(DateTime currentDateTime, RollPoint rollPoint)
{
DateTime dateTime = currentDateTime;
switch (rollPoint)
{
case RollPoint.TopOfMinute:
dateTime = dateTime.AddMilliseconds(-dateTime.Millisecond);
dateTime = dateTime.AddSeconds(-dateTime.Second);
dateTime = dateTime.AddMinutes(1.0);
break;
case RollPoint.TopOfHour:
dateTime = dateTime.AddMilliseconds(-dateTime.Millisecond);
dateTime = dateTime.AddSeconds(-dateTime.Second);
dateTime = dateTime.AddMinutes(-dateTime.Minute);
dateTime = dateTime.AddHours(1.0);
break;
case RollPoint.HalfDay:
dateTime = dateTime.AddMilliseconds(-dateTime.Millisecond);
dateTime = dateTime.AddSeconds(-dateTime.Second);
dateTime = dateTime.AddMinutes(-dateTime.Minute);
if (dateTime.Hour < 12)
{
dateTime = dateTime.AddHours(12 - dateTime.Hour);
break;
}
dateTime = dateTime.AddHours(-dateTime.Hour);
dateTime = dateTime.AddDays(1.0);
break;
case RollPoint.TopOfDay:
dateTime = dateTime.AddMilliseconds(-dateTime.Millisecond);
dateTime = dateTime.AddSeconds(-dateTime.Second);
dateTime = dateTime.AddMinutes(-dateTime.Minute);
dateTime = dateTime.AddHours(-dateTime.Hour);
dateTime = dateTime.AddDays(1.0);
break;
case RollPoint.TopOfWeek:
dateTime = dateTime.AddMilliseconds(-dateTime.Millisecond);
dateTime = dateTime.AddSeconds(-dateTime.Second);
dateTime = dateTime.AddMinutes(-dateTime.Minute);
dateTime = dateTime.AddHours(-dateTime.Hour);
dateTime = dateTime.AddDays(7 - (int) dateTime.DayOfWeek);
break;
case RollPoint.TopOfMonth:
dateTime = dateTime.AddMilliseconds(-dateTime.Millisecond);
dateTime = dateTime.AddSeconds(-dateTime.Second);
dateTime = dateTime.AddMinutes(-dateTime.Minute);
dateTime = dateTime.AddHours(-dateTime.Hour);
dateTime = dateTime.AddDays(1 - dateTime.Day);
dateTime = dateTime.AddMonths(1);
break;
}
return dateTime;
}