我想使用每月(星期几)进行一次计划备份的下一个备份日期。
如果我在2019年1月的第二个星期星期一进行了备份,那么下一个备份日期应该是在2019年2月的第二个星期的星期一。
那么,如何获得下个月每个给定星期的特定日期?
现在我要获得下一个备份月份,但是我不确定在特定的一周中如何获得同一天。
答案 0 :(得分:0)
您应该为DateTime
类创建扩展方法。
public static DateTime NthOf(this DateTime CurDate, int Occurrence , DayOfWeek Day)
{
var fday = new DateTime(CurDate.Year, CurDate.Month, 1);
var fOc = fday.DayOfWeek == Day ? fday : fday.AddDays(Day - fday.DayOfWeek);
if (fOc.Month < CurDate.Month) Occurrence = Occurrence+1;
return fOc.AddDays(7 * (Occurrence - 1));
}
并使用
new DateTime().NthOf(2, DayOfWeek.Monday))
答案 1 :(得分:0)
您为什么不获得DayOfTheYear,而只需添加7。像这样:
var dateTime = DateTime.Now;
var dayOfYear = dateTime.DayOfYear;
var nextDate = dateTime.AddDays(dayOfYear + 7);
Console.WriteLine(nextDate);
由于下一个备份日是同一天,这意味着只需将其添加7。在这种情况下,您将不得不管理一年的最后一周