C# 获取正确的日历周(1或53°?)

C# 获取正确的日历周(1或53°?),c#,datetime,calendar,converter,week-number,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分,但今

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

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:

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);
}
public static int GetIso8601WeekOfYear(日期时间)
{
DayOfWeek day=CultureInfo.InvariantCulture.Calendar.GetDayOfWeek(时间);

如果(day>=DayOfWeek.Monday&&day.NET week处理中断。您应该签出。可能重复的“Correct”不适用。您应该知道要遵循哪个规则,但这取决于(业务)文化。