如何获得下周日的日期?

cod*_*ing 44 .net c# datetime

可能重复:
ASP.net下周二获得

鉴于本月的某一天,我如何从那天起获得下一个星期日?

因此,如果我在2011年9月13日星期二通过,它将在9月18日返回.

Tho*_*que 89

我用这个扩展方法:

    public static DateTime Next(this DateTime from, DayOfWeek dayOfWeek)
    {
        int start = (int)from.DayOfWeek;
        int target = (int)dayOfWeek;
        if (target <= start)
            target += 7;
        return from.AddDays(target - start);
    }
Run Code Online (Sandbox Code Playgroud)

  • @Spencer K:这取决于,如果是一周的几天,我会非常惊讶它会在近(甚至远)的未来发生变化;-) (6认同)
  • +1使其成为扩展方法 (3认同)

Joe*_*oey 26

date.AddDays(7 - (int)date.DayOfWeek) 应该这样做我想.

date.DayOfWeek 将返回表示日期的枚举值(其中0表示星期日).

  • 小心的dvdnhm,只是在今天的日期增加了1天. (9认同)

Gie*_*ius 6

        var date = DateTime.Now;
        var nextSunday = date.AddDays(7 - (int) date.DayOfWeek);    
Run Code Online (Sandbox Code Playgroud)

如果你需要最近的星期日,代码有点不同(好像你星期天,最近的星期日是今天):

var nearestSunday = date.AddDays(7 - date.DayOfWeek == DayOfWeek.Sunday ? 7 : date.DayOfWeek);
Run Code Online (Sandbox Code Playgroud)