获取或将一年中的某周转换为ISO周

Mathiasfk

在尝试获取一年中的星期数时,我尝试了以下方法:

maxWeek = calendar.GetWeekOfYear(New Date(t_year, 12, 31), 
          CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday)

这对我的目的而言效果不佳,但我注意到了一些奇怪的地方。对于2014-12-31,它返回了53,对于2015-01-01,它返回了1。对于2015-01-05,它返回了2。这意味着第53和1周比7天小!

我需要结果符合ISO Week标准。按照这种相同的逻辑,我在网上找不到日历的任何示例。他们都显示了从2014-12-29到2015-01-04的第1周。

普萨·庞杰伦德拉普(PssaPøngjǣrdenlarp)

您的原始帖子没有提到您正在寻找ISO周,这可能使您想要的不清楚。

NET的GetWeekOfYear使用FirstFourDayWeekDayOfWeek.Monday几乎像一个ISO周。不同之处在于,ISO周始终为7天。请记住,ISO日期不仅是不同的格式,而且是带有自己的术语(例如leap周)的不同日历另一方面,您的默认NET calandar是Gregorian。

将NET WOY调整为ISO Week并不难:

Public Shared Function GetISOWeekOfYear(dt As DateTime) As Integer
    Dim cal As Calendar = CultureInfo.InvariantCulture.Calendar
    Dim d As DayOfWeek = cal.GetDayOfWeek(dt)

    If (d >= DayOfWeek.Monday) AndAlso (d <= DayOfWeek.Wednesday) Then
        dt = dt.AddDays(3)
    End If

    Return cal.GetWeekOfYear(dt, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday)

End Function

适用于12/31 / xxxx的简单测试器:

For n As Integer = 1990 To 2016
    Console.WriteLine("{0}: week:{1}", n.ToString,
                      GetISOWeekOfYear(New DateTime(n, 12, 31)).ToString)
Next

仅输出最后几个:

2005:周:52
2006:周:52
2007:周:1
2008:周:1
2009:周:53
2010:周:52
2011:周:52
2012:周:1
2013:周:1
2014:周:1
2015:周:53
2016:周:52

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将一年中的数字周转换为hiveql中的日期(yyyy-mm-dd)

来自分类Dev

一年中某周的Rstrptime行为异常

来自分类Dev

一年中某周的Rstrptime行为异常

来自分类Dev

将一年中的日期转换为日期

来自分类Dev

将一年中的日期转换为日期

来自分类Dev

如何将日期转换为一年(一年中的某天)的位置?

来自分类Dev

获取一年中的下一个和最后一个ISO周编号

来自分类Dev

如何将数据时间转换为一年中的几天?

来自分类Dev

将日期转换为数字,但限制为一年中的天数

来自分类Dev

使用QT将一年中的日期转换为日期

来自分类Dev

将DateTime转换为一年中的连续日期

来自分类Dev

是否有任何DateTime库支持Java的一年中的每季度和每周的某周?

来自分类Dev

获取一年中一周中的月份数(Python)

来自分类Dev

使用 CALENDAR 将月份和日期数字转换为一年中的第几天

来自分类Dev

在PySpark中将一年中的星期转换为日期

来自分类Dev

在PHP中将一年中的日期转换为日期时间

来自分类Dev

Google文件-将日期转换成一年中的某一天

来自分类Dev

在Excel中获取一年中某天的日期

来自分类Dev

如何在C中从一年和iso周中获取日期#

来自分类Dev

C从日期获取一年中的某天

来自分类Dev

如何从一年中的日期获取日期

来自分类Dev

获取一年中某天的完整日期

来自分类Dev

从0获取一年中的星期范围

来自分类Dev

一年中当前周与前周之间的差异

来自分类Dev

php:从一年中的某天和一周中的某天计算日期

来自分类Dev

R-strtoi的异常行为获得一年中的一周

来自分类Dev

Java Time API语言环境(一年中的一周)

来自分类Dev

Java一年中第一周的最少工作日

来自分类Dev

JS获得一年中第一周的正确周数

Related 相关文章

  1. 1

    将一年中的数字周转换为hiveql中的日期(yyyy-mm-dd)

  2. 2

    一年中某周的Rstrptime行为异常

  3. 3

    一年中某周的Rstrptime行为异常

  4. 4

    将一年中的日期转换为日期

  5. 5

    将一年中的日期转换为日期

  6. 6

    如何将日期转换为一年(一年中的某天)的位置?

  7. 7

    获取一年中的下一个和最后一个ISO周编号

  8. 8

    如何将数据时间转换为一年中的几天?

  9. 9

    将日期转换为数字,但限制为一年中的天数

  10. 10

    使用QT将一年中的日期转换为日期

  11. 11

    将DateTime转换为一年中的连续日期

  12. 12

    是否有任何DateTime库支持Java的一年中的每季度和每周的某周?

  13. 13

    获取一年中一周中的月份数(Python)

  14. 14

    使用 CALENDAR 将月份和日期数字转换为一年中的第几天

  15. 15

    在PySpark中将一年中的星期转换为日期

  16. 16

    在PHP中将一年中的日期转换为日期时间

  17. 17

    Google文件-将日期转换成一年中的某一天

  18. 18

    在Excel中获取一年中某天的日期

  19. 19

    如何在C中从一年和iso周中获取日期#

  20. 20

    C从日期获取一年中的某天

  21. 21

    如何从一年中的日期获取日期

  22. 22

    获取一年中某天的完整日期

  23. 23

    从0获取一年中的星期范围

  24. 24

    一年中当前周与前周之间的差异

  25. 25

    php:从一年中的某天和一周中的某天计算日期

  26. 26

    R-strtoi的异常行为获得一年中的一周

  27. 27

    Java Time API语言环境(一年中的一周)

  28. 28

    Java一年中第一周的最少工作日

  29. 29

    JS获得一年中第一周的正确周数

热门标签

归档