【发布时间】:2023-03-06 15:49:01
【问题描述】:
根据 ISO 周系统 (ISO8601),我需要创建一个函数来快速计算给定年份的周数。我需要这个数字作为 Int。首先,我想我需要为 12 月 31 日制作一个 NSDate 并询问那是在哪一周,然后我意识到有时 12 月 31 日是在下一年的第 1 周(例如 2014 年 12 月 31 日) 有人知道这样做的方法吗?
我试过了
var calendarr = NSCalendar(calendarIdentifier: NSCalendar.Identifier.ISO8601)!
var monday = "01-01-2005"
var dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd/MM/yyyy"
var datumet = dateFormatter.date(from: monday)
var weekRange = calendarr.range(of: .weekOfYear, in: .year, for: datumet!)
var weeksCount = weekRange.length
print("this many weeks", weeksCount)
但它给了我 53 周,无论我在哪一年投入。作为参考,2004 年有 53 周,2005 年有 52 周
【问题讨论】:
标签: swift date calendar nsdate iso8601