Kev*_*bbe 1 calendar date ios swift
是否可以从日历组件(Swift 3)中获取给定月份和年份的每一天的日期数组
目前我只是找到一种方法来计算天数,但仅此而已。
目的是开发我的自定义日历,但我陷入了这个阶段......
我正在尝试编写的扩展程序将如下所示:
extension Date
{
func getAllDays() -> [Date]
}
Run Code Online (Sandbox Code Playgroud)
或者这样的方法:
func getAllDays(month: Int, year: Int) -> [Date]
Run Code Online (Sandbox Code Playgroud)
Kev*_*bbe 11
最后我找到了一种方法:
extension Date
{
mutating func addDays(n: Int)
{
let cal = Calendar.current
self = cal.date(byAdding: .day, value: n, to: self)!
}
func firstDayOfTheMonth() -> Date {
return Calendar.current.date(from:
Calendar.current.dateComponents([.year,.month], from: self))!
}
func getAllDays() -> [Date]
{
var days = [Date]()
let calendar = Calendar.current
let range = calendar.range(of: .day, in: .month, for: self)!
var day = firstDayOfTheMonth()
for _ in 1...range.count
{
days.append(day)
day.addDays(n: 1)
}
return days
}
}
Run Code Online (Sandbox Code Playgroud)
用法示例:
let allDays = Date().getAllDays()
Run Code Online (Sandbox Code Playgroud)
输出:
2017-06-01 22:00:00 +0000
2017-06-02 22:00:00 +0000
2017-06-03 22:00:00 +0000
2017-06-04 22:00:00 +0000
...
...
2017-06-30 22:00:00 +0000
| 归档时间: |
|
| 查看次数: |
1950 次 |
| 最近记录: |