根据月份算这个月的天数。
C# code
DateTime d = new DateTime(2008,8,8);
System.Globalization.Calendar c = new System.Globalization.GregorianCalendar();
int daysInAugust = c.GetDaysInMonth(d.Year, d.Month); // 31
法定节假日
that is a bit difficult, you might:
C# code
DateTime[] m_Holidays = new DateTime[]
{
new DateTime(2008, 1, 1),
new DateTime(2008, 5, 1),
new DateTime(2008, 12, 25),
//...
};
bool IsHoliday(DateTime d)
{
return Array.IndexOf<DateTime>(m_Holidays, d) >= 0;
// or,
foreach (DateTime h in m_Holidays)
{
if (h.Month == d.Month && h.Day == d.Day) return true;
}
return false;
}
手写的话
public int GetDays(int year, int month)
{
int[] days = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
if (month == 2 && ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0))
{
return 29;
}
else
{
return days[month];
}
}