簡體   English   中英

C#-檢查給定的日期是否是一個月的第五個工作日?

[英]C# - Check if a given date is the Fifth week day of a month?

對於如何檢查給定日期的日期是否是一個月中第五次出現的日期,我有些困惑。 例如,以下是一周中的某些天,一個月中出現5次:

  • Thursday 29th March 2018
  • Friday 30th March 2018
  • Saturday 31st March 2018
  • Saturday 29th April 2018

我想要一種方法,如果給定的日期是一個月的第五個工作日,則該方法將返回truefalse

我已經從這個問題嘗試了以下代碼,但是此方法僅返回開始第五個星期周期的第一個日期。

 public DateTime? FifthDay(DayOfWeek dayOfWeek, byte monthNum, int year)
 {
      var searchDate = new DateTime(year, monthNum, 1);
      var weekDay = searchDate.DayOfWeek;

      if (weekDay == dayOfWeek)
      {
          searchDate = searchDate.AddDays(28);
      }

      for (DateTime d = searchDate; d < d.AddDays(7); d = d.AddDays(1))
      {
          if (d.DayOfWeek == dayOfWeek)
          {
              searchDate = searchDate.AddDays(28);
              break;
          }
       }

       if (searchDate.Month == monthNum)
          return searchDate;

      return null;
  }

謝謝

難道沒有28歲以上的日期會成為該工作日的第五次出現嗎?

public static bool IsFifthWeek(DateTime d) => d.Day > 28;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM