我想根据上周和上个月在c#中检索记录。对于上周我想要从星期日到星期六的记录。对于上个月我想要获取上个月的开始日期来获取所有记录,直到该月末。
我上周不应该获取过去六天的记录,而是想从当前周(周日)开始日期找到最后一个星期日。
我找到了解决上个月第一天和最后一天的问题---->
var first = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1).AddMonths(-1);
var last = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1).AddDays(-1);
上周查找----->
DateTime _currDateTime = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Unspecified);
DateTime _currentDate;
DateTime _lastWeekStartDate;
_currentDate = _currDateTime.StartOfWeek(DayOfWeek.Sunday);
_lastWeekStartDate = _currentDate.AddDays(-1);
tempfromdate = _lastWeekStartDate.StartOfWeek(DayOfWeek.Sunday);
temptodate = tempfromdate.EndOfWeek(DayOfWeek.Saturday);
答案 0 :(得分:5)
这至少是一种做法
DateTime lastWeekFirstDay = DateTime.Now.AddDays( - 6 - (int)DateTime.Now.DayOfWeek);
DateTime lastMonthFirstDay = DateTime.Now.AddMonths( -1 ).AddDays( 1 - DateTime.Now.Day);
如果星期日是您文化中一周的第一天,则在第一行代码中将6替换为7。 6假设星期一是一周的第一天。
修改强>
添加了月变体的变体,可能更具可读性:
DateTime lastMonthFirstDay = new DateTime( DateTime.Now.Year, DateTime.Now.Month, 1).AddMonths(-1);