如何在c#中获取上周开始日期和上个月的开始日期?

时间:2011-03-10 06:43:09

标签: c#

我想根据上周和上个月在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);

1 个答案:

答案 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);