如何计算C#中的第二个星期五

New*_*art 8 c# date console-application

可能重复:
如何使用C#找到一个月的第3个星期五?

嗨,大家好,

我写了一个小的控制台实用程序,它将一行输出到文本文件中.我希望这一行包括当月的第二个星期五.有没有办法做到这一点?

感谢大家!

Ber*_*ith 16

@druttka上的轻微变化:使用扩展方法.

 public static DateTime NthOf(this DateTime CurDate, int Occurrence , DayOfWeek Day)
 {
     var fday = new DateTime(CurDate.Year, CurDate.Month, 1);

     var fOc = fday.DayOfWeek == Day ? fday : fday.AddDays(Day - fday.DayOfWeek);
     // CurDate = 2011.10.1 Occurance = 1, Day = Friday >> 2011.09.30 FIX. 
     if (fOc.Month < CurDate.Month) Occurrence = Occurrence+1;
     return fOc.AddDays(7 * (Occurrence - 1));
 }
Run Code Online (Sandbox Code Playgroud)

然后这样叫:

 for (int i = 1; i < 13; i++)
 {
      Console.WriteLine(new DateTime(2011, i,1).NthOf(2, DayOfWeek.Friday));
 }
Run Code Online (Sandbox Code Playgroud)