首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >WeekNumber calculation .NET中的错误?

WeekNumber calculation .NET中的错误?
EN

Stack Overflow用户
提问于 2012-08-30 20:20:05
回答 2查看 6.7K关注 0票数 18

我有一个相当奇怪的问题。我住在丹麦,2013年的第一周(第一周)从2012年12月31日开始,持续7天--就像往常一样:)

根据.NET的说法,12月30日是52周,31号是53周,1月1日是1周。

第53周仅持续一天,第1周持续6天。显然,这肯定是错误的(一周由不到7天组成),在丹麦上下文中肯定是错误的。其中12月31日是第1周,而不是第53周。

下面的代码说明了这个问题(CurrentCulture是"da-DK")

代码语言:javascript
复制
    static void Main(string[] args)
    {
        //Here I get Monday
        DayOfWeek firstDayOfWeek = DateTimeFormatInfo.CurrentInfo.FirstDayOfWeek;             
        //Here I get FirstFourDayWeek
        CalendarWeekRule weekRule = DateTimeFormatInfo.CurrentInfo.CalendarWeekRule; 

        DateTime date = new DateTime(2012,12,30);

        for (int i = 0; i <= 10; i++)
        {
            DateTime currentDate = date.AddDays(i);
            Console.WriteLine("Date: {0} WeekNumber: {1}",
                currentDate.ToShortDateString(),
                CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(currentDate, weekRule, firstDayOfWeek));
        }
        Console.ReadLine();
    }

是我做错了什么呢,还是这是.NET中的一个bug?如果是后者-你对正确计算周数有什么建议吗?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12196714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档