1

我需要一个解决方案来计算从所选日期开始的星期。(在月历中)
我试过:

DateTime dt1 = new DateTime(monthCalendar1.SelectionStart.Year, 
                            monthCalendar1.SelectionStart.Month, 
                            monthCalendar1.SelectionStart.Day);

DateTime dt2 = new DateTime(monthCalendar1.SelectionStart.Year, 
                            1, 
                            1);

System.TimeSpan varTime = dt1 - dt2;
int weeks = (varTime.Days / 7) + 1;

但是一周的开始和结束日期不正确,在某些年份我有 53 周?
解决这个问题的最佳方法是什么?

4

2 回答 2

1
public int WeekNumber(DateTime date)
{
    CultureInfo ciCurr = CultureInfo.CurrentCulture;
    int weekNum = ciCurr.Calendar.GetWeekOfYear(date,
                                          CalendarWeekRule.FirstFourDayWeek,
                                          DayOfWeek.Monday);
    return weekNum;
}

请记住将 CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday 更正为您当前的文化,这里的一个用途是丹麦/丹麦

于 2012-08-02T08:04:28.640 回答
0

试试日历的 GetWeekOfYear 函数。查看此处并向下滚动以获取完整示例:http: //msdn.microsoft.com/en-us/library/system.globalization.calendar.getweekofyear.aspx

于 2012-08-02T08:16:01.670 回答