从上午 9 点到晚上 11 点获取一天中的所有时间(以日期格式)并保存在 Swift 中的数组中
Get All Hours of The Day (in date format) from 9am tp 11pm and Save within an array in Swift
我需要获取从当前时间到晚上 11 点的所有剩余时间,并将其以日期格式保存在数组中。这是我到目前为止所写的内容:
var sortedTime: [Date] = {
let today = Date()
var sortedTime: [Date] = []
(0..<14).forEach {
sortedTime.append(Calendar.current.date(byAdding: .hour, value: [=11=], 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: [=10=], to: today) && calender.component(.hour, from: newDate) != 0,
calender.component(.hour, from: newDate) <= 23 else {
return
}
//convert date into desired format
sortedTime.append(newDate)
}
我需要获取从当前时间到晚上 11 点的所有剩余时间,并将其以日期格式保存在数组中。这是我到目前为止所写的内容:
var sortedTime: [Date] = {
let today = Date()
var sortedTime: [Date] = []
(0..<14).forEach {
sortedTime.append(Calendar.current.date(byAdding: .hour, value: [=11=], 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: [=10=], to: today) && calender.component(.hour, from: newDate) != 0,
calender.component(.hour, from: newDate) <= 23 else {
return
}
//convert date into desired format
sortedTime.append(newDate)
}