2

我怎样才能得到DayOfWeek上周的日期?

例如

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

我只能得到DayOfWeek本周的。

这是我的代码

DateTime today = DateTime.Now;

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

3 回答 3

2

怎么样:

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

第一个 AddDays 备份到本周的开始然后 AddDays(-7) 备份到上周的开始然后第三个 AddDays 前进到您正在寻找的那一天。

于 2013-07-05T01:41:40.833 回答
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 天”。

于 2013-07-05T01:44:20.760 回答
0

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

于 2013-07-05T01:45:51.177 回答