System.Globalization.Calendar.GetWeekOfYear()返回奇数结果返回2012年12月31日(其他年份)的奇数结果。日历calendar=CultureInfo.InvariantCulture.Calendar;vardate=newDateTime(2007,12,29);对于(inti=0;i<5;i++){intw=calendar.GetWeekOfYear(date,CalendarWeekRule.FirstFourDayWeek,DayOfWeek.Monday);Console.WriteLine("{0}t{1}",date.ToString("dd.MM.yyyy"),w);日期=date.AddDays(1);}结果29.12.20075230.12.20075231.12.200753<-01.01.2008102.01.2008129.12.12.20125230.12.22012525231.12.212.2122.2201253据我所知,20131不应该有53周,但它应该包含第1周的日期。有没有办法在日历中更改此行为?CalendarWeekRule枚举的文档明确指出它“不直接映射到ISO8601”,并链接到Microsoft.Net中的ISO8601WeekofYearFormat,这是描述差异的博客条目。查看CalendarWeekRule的值。您正在使用FirstFourDayWeek,因此您将获得所描述的值。如果您希望每周有7天,那么您应该使用FirstFullWeek。在您的情况下,这意味着31.12.2007将是第53周,但将是2.1.2008。周标识符不必是唯一的52周,您不一定有7天在特定星期。如果这对您来说是个问题,请添加代码来处理边缘情况。以上就是C#学习教程:System.Globalization.Calendar.GetWeekOfYear()返回奇数结果分享的全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
