您可以创建一个这样的类来生成这样的间隔,
struct Time {
let start: TimeInterval
let end: TimeInterval
let interval: TimeInterval
init(start: TimeInterval, interval: TimeInterval, end: TimeInterval) {
self.start = start
self.interval = interval
self.end = end
}
init(startHour: TimeInterval, intervalMinutes: TimeInterval, endHour: TimeInterval) {
self.start = startHour * 60 * 60
self.end = endHour * 60 * 60
self.interval = intervalMinutes * 60
}
var timeRepresentations: [String] {
let dateComponentFormatter = DateComponentsFormatter()
dateComponentFormatter.unitsStyle = .positional
dateComponentFormatter.allowedUnits = [.minute, .hour]
var dateComponent = DateComponents()
return timeIntervals.map { timeInterval in
dateComponent.second = Int(timeInterval)
return dateComponentFormatter.string(from: dateComponent)!
}
}
var timeIntervals: [TimeInterval]{
return Array(stride(from: start, through: end, by: interval))
}
}
Run Code Online (Sandbox Code Playgroud)
这会产生,
["8:00","8:30","9:00","9:30","10:00","10:30","11:00","11:30"," 12:00","12:30","13:00","13:30","14:00","14:30","15:00","15:30","16: 00","16:30","17:00","17:30","18:00","18:30","19:00","19:30","20:00" ,"20:30","21:00","21:30","22:00","22:30","23:00"]
要检索范围,请将此代码放在最后
let time = Time(startHour: 8, intervalMinutes: 30, endHour: 23)
print(time.timeRepresentations)
Run Code Online (Sandbox Code Playgroud)
结果就是,
["8:00 - 8:30","8:30 - 9:00","9:00 - 9:30","9:30 - 10:00","10:00 - 10:30" ,"10:30-11:00","11:00-11:30","11:30-12:00","12:00-12:30","12:30 - 13:00" ,"13:00-13:30","13:30-14:00","14:00-14:30","14:30-15:00","15:00-15:30" ,"15:30-16:00","16:00-16:30","16:30-17:00","17:00-17:30","17:30-18:00" ,"18:00-18:30","18:30-19:00","19:00-19:30","19:30-20:00","20:00-20:30" ,"20:30-21:00","21:00-21:30","21:30-22:00","22:00-22:30","22:30 - 23:00" ]
| 归档时间: |
|
| 查看次数: |
1667 次 |
| 最近记录: |