首頁 > 後端開發 > C++ > 如何在 .NET 中計算下一個工作日的日期?

如何在 .NET 中計算下一個工作日的日期?

Patricia Arquette
發布: 2024-12-30 22:55:10
原創
571 人瀏覽過

How Can I Calculate the Date of the Next Weekday in .NET?

在.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);
}
登入後複製

使用示例

  • 今天或未來 6天內:
DateTime nextTuesday = GetNextWeekday(DateTime.Today, DayOfWeek.Tuesday);
登入後複製
  • 下週二,不含今天:
DateTime nextTuesday = GetNextWeekday(DateTime.Today.AddDays(1), DayOfWeek.Tuesday);
登入後複製

以上是如何在 .NET 中計算下一個工作日的日期?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板