【发布时间】:2019-01-03 16:43:16
【问题描述】:
我试图从日期时间获取周数,就我而言,一周的第一天是星期一,我想遵循 FirstFourDays 约定。
为了查看结果,我正在查看这个网页:
https://espanol.epochconverter.com/semanas/2020
要获取周数,我使用方法:
System.Globalization.CultureInfo.InvariantCulture.Calendar.GetWeekOfYear();
所以我想获取日期 2019-12-29 的周数,所以我使用以下代码:
System.Globalization.CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(new DateTime(2019, 12, 29), System.Globalization.CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);
结果是第 52 周。是正确的。
现在我想获取 2019-12-30 的周数,我得到的周数是 53,这是错误的,因为 2019 年只有 52 周。事实上,2019-12-30 与 2020-01-01 属于同一周,即是第 1 周,这是正确的,所以我不明白为什么我可以在同一日期得到两个不同的结果。
我怎样才能始终得到正确的结果?或者如何正确获取任何日期的周数?
【问题讨论】:
-
啊,周数。请务必阅读:blogs.msdn.microsoft.com/oldnewthing/20181102-00/?p=100125。特别是,周数是非常特定于文化的。你认为“InvariantCulture”周编号系统应该是什么?
-
之前已经回答过类似的问题。您可以在这里找到答案:stackoverflow.com/questions/11154673/….
标签: c# week-number