private static DateTime GetNextMonthlyTimeByEveryDayNr(DateTime origin)
{
var daysInMonth = DateTime.DaysInMonth(origin.Year, origin.Month);
var dayOfMonth = Configuration.MonthlyDay > daysInMonth ? daysInMonth : Configuration.MonthlyDay;
var nextTime = new DateTime(origin.Year, origin.Month, dayOfMonth, Configuration.MonthlyHour, Configuration.MonthlyMinute, 0);
if (nextTime > origin)
return nextTime;
var nextMonth = origin.Month + 1;
if (nextMonth == 13)
return new DateTime(origin.Year + 1, 1, Configuration.MonthlyDay, Configuration.MonthlyHour, Configuration.MonthlyMinute, 0);
daysInMonth = DateTime.DaysInMonth(origin.Year, nextMonth);
dayOfMonth = Configuration.MonthlyDay > daysInMonth ? daysInMonth : Configuration.MonthlyDay;
return new DateTime(origin.Year, nextMonth, dayOfMonth, Configuration.MonthlyHour, Configuration.MonthlyMinute, 0);
}
private static DateTime GetNextMonthlyTimeByWeekNrWeekday(DateTime origin)