我有这段代码可以在一周内得到日期。但是这个代码需要星期一作为硬编码。如何使这4行灵活的地方其评论"//Special check for Sunday because acc. to our business week Starts from Monday and DayOfWeek Enum starts from Sunday."
星期一从星期一开始如何简化逻辑?
我的意思是可以var
计算在一个单一的行,没有其他条件?所以明天如果决定星期天是开始日期,那么不需要做任何改变。
class Program
{
static void Main(string[] args)
{
DateTime weekDate = GetWeekDate(DateTime.Now, DayOfWeek.Friday);
Console.WriteLine(weekDate); //prints 14-02-2014
Console.ReadLine();
}
private static DateTime GetWeekDate(DateTime dt, DayOfWeek dow)
{
DateTime sow;
int var = 0;
sow = StartOfWeek(dt);
if (dow == 0) //Special check for Sunday because acc. to our business week Starts from Monday and DayOfWeek Enum starts from Sunday.
var = 6;
else
var = (int)dow - 1;
return sow.AddDays(var);
}
public static DateTime StartOfWeek(DateTime dt)
{
int days = dt.DayOfWeek - DayOfWeek.Monday; //Week Starts from Monday
if (days < 0)
days += 7;
return dt.AddDays(-1 * days).Date;
}
}
使用全球化的第一天DateTimeFormat –