gpt4 book ai didi

ios - 使用 NSCalendar 为日期添加一天

转载 作者:行者123 更新时间:2023-11-29 01:31:36 25 4
gpt4 key购买 nike

我正在尝试添加一天到另一天(它工作得很好,直到我看到一些东西)。

对于 2016 年第 6 周(从 1 月 30 日开始),如果我到目前为止有一天,它会显示 2015 年 12 月 31 日。

你能解释一下我做错了什么吗?

这是代码(您可以将其放在 Playground 中):

let weekToDisplay = 6
let yearToDisplay = 2016

let calendar = NSCalendar.currentCalendar()
let comp = NSDateComponents()
comp.weekday = calendar.firstWeekday
comp.weekOfYear = weekToDisplay
comp.year = yearToDisplay

let dateToIncrement = calendar.dateFromComponents(comp)! // "Jan 31, 2016, 12:00 AM
var incrementedDate = calendar.dateByAddingUnit(.Day, value: 1, toDate: dateToIncrement, options: NSCalendarOptions.WrapComponents)! // "Jan 1, 2016, 12:00 AM"

print(dateToIncrement) // "2016-01-30 23:00:00 +0000\n"
print(incrementedDate) // "2015-12-31 23:00:00 +0000\n"

最后一件事,当你打印日期时,它与执行该特定代码行时在 Playground 上显示的不一样,为什么? (看评论)

最佳答案

您的问题是包装日期组件的选项。你不想要那个。简单地做:

let weekToDisplay = 6
let yearToDisplay = 2016

let calendar = NSCalendar.currentCalendar()
let comp = NSDateComponents()
comp.weekday = calendar.firstWeekday
comp.weekOfYear = weekToDisplay
comp.year = yearToDisplay

let dateToIncrement = calendar.dateFromComponents(comp)! // "Jan 31, 2016, 12:00 AM
var incrementedDate = calendar.dateByAddingUnit(.Day, value: 1, toDate: dateToIncrement, options: [])! // "Jan 1, 2016, 12:00 AM"

print(dateToIncrement)
print(incrementedDate)

关于ios - 使用 NSCalendar 为日期添加一天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33402878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com