我有一个相当奇怪的问题。我住在丹麦,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")
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?如果是后者-你对正确计算周数有什么建议吗?
https://stackoverflow.com/questions/12196714
复制相似问题