获得正确的日历周(1或53 ???)CUI

时间:2013-11-14 09:06:18

标签: c# datetime calendar converter week-number

我的申请需要一个正确的日历周。这是我的尝试:

DateTime d = new DateTime(2013,12,31);
CultureInfo CUI = CultureInfo.CurrentCulture;
Label1.Text =  CUI.Calendar.GetWeekOfYear(d, CUI.DateTimeFormat.CalendarWeekRule, CUI.DateTimeFormat.FirstDayOfWeek).ToString();

现在我得到了53,但这对今年来说是错误的。 正确地说它应该是第一个日历周。

2015年12月31日至2013年12月31日,我们有下一次53日历周。

1 个答案:

答案 0 :(得分:2)

您可以使用此方法返回1:

public static int GetIso8601WeekOfYear(DateTime time)
{
    DayOfWeek day = CultureInfo.InvariantCulture.Calendar.GetDayOfWeek(time);
    if (day >= DayOfWeek.Monday && day <= DayOfWeek.Wednesday)
    {
        time = time.AddDays(3);
    }

    return CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(time, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);
}

[借鉴Get the correct week number of a given date]