vba - VBScript 或 VBA 中的 ISO 周数

标签 vba vbscript iso8601 week-number

我怎样才能得到 ISO week number VBScript 或 VBA 中的某个日期?

最佳答案

首先,请注意:

  1. 报告周 以及周数很重要,因为日期的年份可能不同。
  2. 几个 Windows 组件包含 a bug几年的最后一个星期一。

根据我的经验,最简单、最清晰和最可靠的计算方法是:

Sub WeekNum(someDate, isoWeekYear, isoWeekNumber, isoWeekDay)
  Dim nearestThursday
  isoWeekDay = WeekDay(someDate, vbMonday)
  nearestThursday = DateAdd("d", 4 - Int(isoWeekDay), someDate)
  isoWeekYear = Year(nearestThursday)
  isoWeekNumber = Int((nearestThursday - DateSerial(isoWeekYear, 1, 1)) / 7) + 1
End Sub

这还会返回 ISO 星期几,从 1 开始计算星期一。

关于vba - VBScript 或 VBA 中的 ISO 周数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35010785/

相关文章:

xml - VBA Excel 通过转换为 Long 给出了 overlow

vba - 引用最近添加的工作表

java - 从 QTP/vbscript 调用 java 方法

vba - 如何使在 32 位 Excel 2016 上编写的宏在 64 位 Excel 2016 上工作

excel - 字典键按行分配

powershell - 从 Powershell 调用 VBScript ..这是正确的方法吗?

c# - 当接收对象是 C# COM 对象并且函数具有接口(interface)作为参数时,VBScript 抛出异常

date - 如何在 Swift 中解析/创建格式为小数秒 UTC 时区(ISO 8601、RFC 3339)的日期时间戳?

iso 8601 中的安卓时间

Java将8601格式的字符串解析为更具可读性的日期解析错误