C# 获取给定年份中ISO 8601的周数

C# 获取给定年份中ISO 8601的周数,c#,.net,date,iso8601,C#,.net,Date,Iso8601,我希望获得ISO 8601今年的周数。我在看它也取决于地点和日历。我对ISO8601感兴趣。我找不到任何解决办法。我发现的类似的东西是“伊尔古鲁”(il_guru),它根据日期计算周数。我怎样才能得到ISO8601的s周计数 这是@il_guru的代码如下: //这假定周从周一开始。 //第一周是一年中的第一周,有一个星期四。 公共静态整型GetIso8601WeekOfYear(日期时间) { //严重作弊。如果是星期一、星期二或星期三,那么 //无论星期四、星期五或星期六是什么样的星期,

我希望获得
ISO 8601
今年的周数。我在看它也取决于地点和日历。我对ISO8601感兴趣。我找不到任何解决办法。我发现的类似的东西是“伊尔古鲁”(il_guru),它根据日期计算周数。我怎样才能得到ISO8601的s周计数

这是
@il_guru
的代码如下:

//这假定周从周一开始。
//第一周是一年中的第一周,有一个星期四。
公共静态整型GetIso8601WeekOfYear(日期时间)
{
//严重作弊。如果是星期一、星期二或星期三,那么
//无论星期四、星期五或星期六是什么样的星期,
//我们总是能做到这些
DayOfWeek day=CultureInfo.InvariantCulture.Calendar.GetDayOfWeek(时间);
如果(day>=DayOfWeek.Monday&&day,我建议使用,而不是尝试自己实现它,特别是WeekyarRules.Iso,它实现了Iso-8601中指定的规则,可能会帮助您:您有4种不同的计算方法(所有方法都是等效的,只有一种可能更适合您,具体取决于您的日期)我建议使用而不是自己尝试实现它,特别是WeekyarRules.Iso,它实现了Iso-8601中指定的规则,它可能会帮助您:您有4种不同的计算方法(所有方法都是等效的,只有一种可能更适合您,具体取决于您的日期)
// This presumes that weeks start with Monday.
// Week 1 is the 1st week of the year with a Thursday in it.
public static int GetIso8601WeekOfYear(DateTime time)
{
    // Seriously cheat.  If its Monday, Tuesday or Wednesday, then it'll 
    // be the same week# as whatever Thursday, Friday or Saturday are,
    // and we always get those right
    DayOfWeek day = CultureInfo.InvariantCulture.Calendar.GetDayOfWeek(time);
    if (day >= DayOfWeek.Monday && day <= DayOfWeek.Wednesday)
    {
        time = time.AddDays(3);
    }

    // Return the week of our adjusted day
}