【问题标题】:Why is this date not in the week of the next year? (C# calendar)为什么这个日期不在明年的一周? (C# 日历)
【发布时间】:2012-02-23 05:23:41
【问题描述】:

我想计算给定日期的周数。

DateTime date = Convert.ToDateTime("31.12.2001");

DateTimeFormatInfo dfi = DateTimeFormatInfo.CurrentInfo;
System.Globalization.Calendar cal = dfi.Calendar;

int weekOfYear = cal.GetWeekOfYear(date, CalendarWeekRule.FirstFourDayWeek,  
   dfi.FirstDayOfWeek);

在我的 DateTimeFormatInfo 中,一周的第一天是星期一。我想使用四天规则,这意味着一周属于其大部分日子所在的一年。 2001 年 12 月 31 日是星期一,应该是 2002 年的第 1 周。但是,weekOfYear 返回为 53。

有人知道怎么回事吗?

【问题讨论】:

标签: c# date calendar


【解决方案1】:

请参阅the documentation for CalendarWeekRule 了解确切规则。简而言之,12 月 31 日永远不会是第 1 周,它将永远是 52/53。枚举值会影响 1 月的第一天的星期几。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-12
  • 2015-05-29
  • 1970-01-01
相关资源
最近更新 更多