选择DayOfWeek上周

时间:2013-07-05 01:35:54

标签: c#

如何获得上周DayOfWeek的日期?

例如

我想选择6月23日星期日为DayOfWeek

我只能得到本周的DayOfWeek

这是我的代码

DateTime today = DateTime.Now;

while (today.DayOfWeek != DayOfWeek.Sunday)
    today = today.AddDays(-1);

3 个答案:

答案 0 :(得分:2)

怎么样:

DayOfWeek dayToFind = DayOfWeek.Sunday;
today.AddDays(-1 * (int)today.DayOfWeek).AddDays(-7).AddDays((int)dayToFind);

第一个AddDays备份到 this 周的开始,然后AddDays(-7)备份到 last 周的开始,然后第三个AddDays进入你正在寻找的那一天。

答案 1 :(得分:2)

也许这就是:

DateTime today = DateTime.Today;
int difference = today.DayOfWeek - DayOfWeek.Sunday;
DateTime lastSunday = today.AddDays(-difference).AddDays(-(7 * 1));
                                                          //   ^ number of weeks to remove

这基本上说,“转到本周开始,然后再删除7天”。

答案 2 :(得分:0)

您可以通过使用初始日期值创建DateTime对象来将其设置为特定日期。如果您希望它基于今天而不是指定日期,则只需减去一周。