0

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

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-12-2013 我们有下一次 53 日历周。

4

1 回答 1

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);
}

[借自获取给定日期的正确周数]

于 2013-11-14T09:18:44.950 回答