在 .NET 中确定即将到来的工作日的日期
“下一个工作日”的概念可能不明确,因为它取决于本周的当前日期。以下是使用 .NET 库在 C# 中解决此问题的几种方法:
“下周二发生,如果已经是星期二则为今天”
此方法返回最近的星期二,即今天或未来的日期:
DateTime today = DateTime.Today; int daysUntilTuesday = ((int)DayOfWeek.Tuesday - (int)today.DayOfWeek + 7) % 7; DateTime nextTuesday = today.AddDays(daysUntilTuesday);
"A从现在开始的一周时间,即使已经是星期二”
此方法返回下一个星期二,但如果已经是星期二,则跳过一周:
int daysUntilTuesday = (((int)DayOfWeek.Monday - (int)today.DayOfWeek + 7) % 7) + 1;
“明天或下周二发生,或明天(如果是)星期二”
此方法返回下一个星期二,但从明天开始,以避免额外一周的延迟:
DateTime tomorrow = DateTime.Today.AddDays(1); int daysUntilTuesday = ((int)DayOfWeek.Tuesday - (int)tomorrow.DayOfWeek + 7) % 7; DateTime nextTuesday = tomorrow.AddDays(daysUntilTuesday);
适用于任何工作日的多功能方法
要处理任何工作日,请创建一个通用方法 GetNextWeekday,它将 DateTime 和 DayOfWeek 作为输入:
public static DateTime GetNextWeekday(DateTime start, DayOfWeek day) { int daysToAdd = ((int) day - (int) start.DayOfWeek + 7) % 7; return start.AddDays(daysToAdd); }
使用示例
DateTime nextTuesday = GetNextWeekday(DateTime.Today, DayOfWeek.Tuesday);
DateTime nextTuesday = GetNextWeekday(DateTime.Today.AddDays(1), DayOfWeek.Tuesday);
以上是如何在 .NET 中计算下一个工作日的日期?的详细内容。更多信息请关注PHP中文网其他相关文章!