gpt4 book ai didi

swift - 获取一天中的所有时间(以日期格式)从上午 9 点到晚上 11 点,并保存在 Swift 的数组中

转载 作者:行者123 更新时间:2023-11-30 10:30:57 25 4
gpt4 key购买 nike

我需要获取从当前时间到晚上 11 点之间的所有剩余时间,并将其以日期格式保存在数组中。这是我到目前为止所写的内容:

var sortedTime: [Date] = {

let today = Date()
var sortedTime: [Date] = []

(0..<14).forEach {
sortedTime.append(Calendar.current.date(byAdding: .hour, value: $0, to: today)!)
}

return sortedTime
}()

在代码中我有:(0..<14).forEach {这给了我接下来的 14 个小时,但这不是我所需要的;我需要确保我的工作时间是在上午 9 点到晚上 11 点之间。我怎样才能设置这个限制?

最佳答案

当您访问任何日历的 .hour 时,其格式为 24 小时。所以你需要这样的东西:

let today = Date()
var sortedTime: [Date] = []
var calender = Calendar(identifier: .iso8601)
calender.locale = Locale(identifier: "en_US_POSIX")
let currentHour = calender.component(.hour, from: today)
(0...(24-currentHour)).forEach {
guard let newDate = calender.date(byAdding: .hour, value: $0, to: today) && calender.component(.hour, from: newDate) != 0,
calender.component(.hour, from: newDate) <= 23 else {
return
}
//convert date into desired format
sortedTime.append(newDate)
}

关于swift - 获取一天中的所有时间(以日期格式)从上午 9 点到晚上 11 点,并保存在 Swift 的数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59251657/

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