2010-12-02 121 views

回答

0

這個想法是排除非工作日。這裏有一個基本的例子:

// define non working days of week 
var nonWorkingDaysOfWeek = new List<DayOfWeek> 
    { 
     DayOfWeek.Sunday // hard-coded for example 
    }; 

// define specific non-working dates 
var holidays = new List<DateTime> 
    { 
     new DateTime(2010, 12, 25) // hard-coded for example 
    }; 

// tally the working days 
var currentYear = 2010; // hard-coded for example 
var currentMonth = 12; // hard-coded for example 
var daysInCurrentMonth = DateTime.DaysInMonth(currentYear, currentMonth); 
var numberOfWorkingDays = 0; 
for (var day = 1; day <= daysInCurrentMonth; day++) 
{ 
    var date = new DateTime(currentYear, currentMonth, day); 
    if (!nonWorkingDaysOfWeek.Contains(date.DayOfWeek) && !holidays.Contains(date)) 
    { 
     numberOfWorkingDays++; 
    } 
} 
1

這將計算在一個月的非星期日的數量(例如顯示當前月份)。

  var daysThisMonthThatAreNotSundays = 
      Enumerable.Range(1, DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month)).Where(
       d => new DateTime(DateTime.Now.Year, DateTime.Now.Month, d).DayOfWeek != DayOfWeek.Sunday).Count(); 
+0

+1使用`Enumerable.Range` – 2010-12-02 04:30:31