我用這個代碼從另一個問題:檢查這個星期一是上週一在一個月
private bool NthDayOfMonth(DateTime date, DayOfWeek dow, int n){
int d = date.Day;
return date.DayOfWeek == dow && (d-1)/7 == (n-1);
}
它工作正常。但它不檢查最後一天(對於我來說,它是當n = 5時)。如何修改它?
謝謝。
我用這個代碼從另一個問題:檢查這個星期一是上週一在一個月
private bool NthDayOfMonth(DateTime date, DayOfWeek dow, int n){
int d = date.Day;
return date.DayOfWeek == dow && (d-1)/7 == (n-1);
}
它工作正常。但它不檢查最後一天(對於我來說,它是當n = 5時)。如何修改它?
謝謝。
方法如下檢查給定的日期每月的最後一個星期幾。
private bool IsLastOfMonth(DateTime date)
{
var oneWeekAfter = date.AddDays(7);
return oneWeekAfter.Month != date.Month;
}
所以有新的方法,它只是檢查星期一
private bool IsLastMonday(DateTime date)
{
if (date.DayOfWeek != DayOfWeek.Monday)
return false; // it is not monday
// the next monday is...
var oneWeekAfter = date.AddDays(7);
// and is it in same month?, if it is, that means its not last monday
return oneWeekAfter.Month != date.Month;
}
我星期一爲檢查添加了一個新的方法。 – arunes 2012-02-25 09:42:11
讓我們3月30日,
d = 30,
(date.DayOfWeek == DayOfWeek.Friday) == true,
(30-1)=29, 29/7 = 4
4 == (5-1)
因此,工程
要只檢查是否星期幾是上次在mothth可以使用
return date.AddDays(7).Month != date.Month;
看到http://stackoverflow.com/questions/2711357/how-to-get-last-friday-of-months-使用網絡 – 2012-02-25 07:00:17
請舉一個例子,它不起作用 – 2012-02-25 07:35:32