计算日期星期一作为星期几= 1
问题描述:
我有这样一段代码:计算日期星期一作为星期几= 1
public static DateTime calcMondayDate(DateTime input)
{
int delta = DayOfWeek.Monday - input.DayOfWeek;
DateTime monday = input.AddDays(delta);
return monday;
}
伟大的工程来计算周一最新要是星期日是一周的第一天。但是我想要这样计算,所以星期一是第一个星期的第一天。因为如果进入2009-11-29,2009-11-30将返回而不是2009-11-23。
我该如何调整代码?
/M
答
试试这个:
public static DateTime calcMondayDate(DateTime input) {
int delta = (DayOfWeek.Monday - input.DayOfWeek - 7) % 7;
DateTime monday = input.AddDays(delta);
return monday;
}
答
假设你想使用上周一(或同一天,如果一个星期一),那么我认为这应该工作:
public static DateTime calcMondayDate(DateTime input)
{
int delta = (7 - (DayOfWeek.Monday - input.DayOfWeek)) % 7;
return input.AddDays(-delta);
}
答
DateTime temp = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 7, 0, 0);
starting=temp.AddDays(-(int) temp.AddDays(-1).DayOfWeek);
这适用于我