需要帮助如何获得当月的第一个日期和一周的最后日期 .
低于我到目前为止所做的,但在某些情况下仍然会下降,特别是在开始日期和结束日期是星期日的情况下:
var givenDate = new DateTime(2018,4,1);
var intervalToStart = givenDate.DayOfWeek - DayOfWeek.Monday;
var startDate = givenDate.AddDays(-intervalToStart);
DateTime endDate;
int intervalToEnd = 0;
if (startDate.Month != givenDate.Month)
startDate = new DateTime(givenDate.Year, givenDate.Month, 1);
var dayOfWeekStartDate = startDate.DayOfWeek.ToString().ToLower();
switch (dayOfWeekStartDate)
{
case "sunday": intervalToEnd = 0;
break;
case "monday": intervalToEnd = 6;
break;
case "tuesday": intervalToEnd = 5;
break;
case "wednesday": intervalToEnd = 4;
break;
case "thursday": intervalToEnd = 3;
break;
case "friday": intervalToEnd = 2;
break;
case "saturday": intervalToEnd = 1;
break;
}
endDate = startDate.AddDays(intervalToEnd);
Console.WriteLine(startDate);
Console.WriteLine(endDate);
Case 1:
截止日期:2018年5月5日(周六)
第一个星期几:2018年5月1日(星期二)
上周日期:208年5月6日(星期日)
Case 2:
截止日期:2018年5月9日(周三)
第一周日期:2018年5月7日(星期一)
上周日期:2018年5月13日(星期日)
Case 3:
截止日期:2018年4月1日(星期日)
第一个星期几:2018年4月1日(星期日)
上周日期:2018年4月1日(星期日)
case 4:
截止日期:2018年6月2日(周六)
第一个星期几:2018年6月1日(星期五)
上周日期:2018年6月3日(星期日)
概念或答案非常感谢 .
先感谢您 .