日期时间-获取下一个星期二
如何获得下周二的日期?
在PHP中,它非常简单strtotime('next tuesday');
。
如何在.NET中实现类似的目标
回答:
正如我在评论中提到的那样,“下一个星期二”可能意味着多种含义,但是这段代码为您提供了“下一个星期二发生,或者如果今天已经是星期二,则显示为今天”:
DateTime today = DateTime.Today;// The (... + 7) % 7 ensures we end up with a value in the range [0, 6]
int daysUntilTuesday = ((int) DayOfWeek.Tuesday - (int) today.DayOfWeek + 7) % 7;
DateTime nextTuesday = today.AddDays(daysUntilTuesday);
如果要给“一周的时间”(如果已经是星期二),则可以使用:
// This finds the next Monday (or today if it's Monday) and then adds a day... so the// result is in the range [1-7]
int daysUntilTuesday = (((int) DayOfWeek.Monday - (int) today.DayOfWeek + 7) % 7) + 1;
…或者您可以使用原始公式,但是从明天开始:
DateTime tomorrow = DateTime.Today.AddDays(1);// The (... + 7) % 7 ensures we end up with a value in the range [0, 6]
int daysUntilTuesday = ((int) DayOfWeek.Tuesday - (int) tomorrow.DayOfWeek + 7) % 7;
DateTime nextTuesday = tomorrow.AddDays(daysUntilTuesday);
编辑:只是为了使这个漂亮和通用:
public static DateTime GetNextWeekday(DateTime start, DayOfWeek day){
// The (... + 7) % 7 ensures we end up with a value in the range [0, 6]
int daysToAdd = ((int) day - (int) start.DayOfWeek + 7) % 7;
return start.AddDays(daysToAdd);
}
因此,要获取“今天或未来6天”的值:
DateTime nextTuesday = GetNextWeekday(DateTime.Today, DayOfWeek.Tuesday);
获取“下一个星期二(今天除外)”的值:
DateTime nextTuesday = GetNextWeekday(DateTime.Today.AddDays(1), DayOfWeek.Tuesday);
以上是 日期时间-获取下一个星期二 的全部内容, 来源链接: utcz.com/qa/417537.html