我正在尝试通过在 C# 中传递日期来查找每月的工作日数。
例如:如果我通过“2013 年 3 月 6 日(2013 年 3 月 6 日)”,该函数应该显示每月的第一个星期三。如果我通过“2013 年 3 月 1 日(2013 年 3 月 1 日)”,该函数应该显示每月的第一个星期五。如果我通过“2013 年 3 月 13 日(2013 年 3 月 13 日)”,该函数应该显示每月的第二个星期三。
我试图使用这个函数,但它返回一个月的一周(即通过“3/6/2013(6-Mar-2013)”返回 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;
}
请建议如何获取每月的工作日数。