【发布时间】:2013-02-15 13:45:21
【问题描述】:
我试图通过在 C# 中传递一个日期来查找每月的工作日数。
例如:如果我通过“2013 年 3 月 6 日(2013 年 3 月 6 日)”,该函数应该显示每月的第一个星期三。 如果我通过“2013 年 3 月 1 日(2013 年 3 月 1 日)”,该函数应该显示每月的第一个星期五。 如果我通过“2013 年 3 月 13 日(2013 年 3 月 13 日)”,该函数应该显示每月的第二个星期三。
我试图使用这个函数,但它返回了月份中的第几周(即传递“2013 年 3 月 6 日(2013 年 3 月 6 日)”返回 2):
public static int GetWeekOfMonth(DateTime date)
{
DateTime beginningOfMonth = new DateTime(date.Year, date.Month, 1);
while (date.Date.AddDays(1).DayOfWeek != CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek)
date = date.AddDays(1);
return (int)Math.Truncate((double)date.Subtract(beginningOfMonth).TotalDays / 7f) + 1;
}
请建议如何获取每月的工作日数。
【问题讨论】: