Pon*_*dum 129
这是我使用的(可能不是国际化的):
DateTime input = //...
int delta = DayOfWeek.Monday - input.DayOfWeek;
DateTime monday = input.AddDays(delta);
Run Code Online (Sandbox Code Playgroud)
Mar*_*rco 58
在某些情况下,Pondium答案可以搜索Forward.如果你只想要向后搜索,我认为它应该是:
DateTime input = //...
int delta = DayOfWeek.Monday - input.DayOfWeek;
if(delta > 0)
delta -= 7;
DateTime monday = input.AddDays(delta);
Run Code Online (Sandbox Code Playgroud)
像这样的东西会起作用
DateTime dt = DateTime.Now;
while(dt.DayOfWeek != DayOfWeek.Monday) dt = dt.AddDays(-1);
Run Code Online (Sandbox Code Playgroud)
我敢肯定有一个更好的方式... :)
小智 5
public static class DateTimeExtension
{
public static DateTime GetFirstDayOfWeek(this DateTime date)
{
var firstDayOfWeek = CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek;
while (date.DayOfWeek != firstDayOfWeek)
{
date = date.AddDays(-1);
}
return date;
}
}
Run Code Online (Sandbox Code Playgroud)
国际在这里。我认为作为扩展它可以更有用。