在.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中文網其他相關文章!