Swift - 计算当月、任意月一共有多少天

来源:互联网 发布:福州大学网络教育平台 编辑:程序博客网 时间:2024/04/29 20:11
1,获取当前月天数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//计算当月天数
func getDaysInCurrentMonth() -> Int {
    let calendar = NSCalendar.currentCalendar()
     
    let date = NSDate()
    let nowComps = calendar.components([.Year, .Month, .Day], fromDate: date)
    let year =  nowComps.year
    let month = nowComps.month
     
    let startComps = NSDateComponents()
    startComps.day = 1
    startComps.month = month
    startComps.year = year
     
    let endComps = NSDateComponents()
    endComps.day = 1
    endComps.month = month == 12 ? 1 : month + 1
    endComps.year = month == 12 ? year + 1 : year
     
    let startDate = calendar.dateFromComponents(startComps)!
    let endDate = calendar.dateFromComponents(endComps)!
     
    let diff = calendar.components(.Day, fromDate: startDate, toDate: endDate,
                                   options: .MatchFirst)
    return diff.day
}
测试代码:
1
2
let days = getDaysInCurrentMonth()
print("本月有\(days)天")
原文:Swift - 计算当月、任意月一共有多少天


2,获取指定年月的天数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//计算指定月天数
func getDaysInMonth( year: Int, month: Int) -> Int
{
    let calendar = NSCalendar.currentCalendar()
     
    let startComps = NSDateComponents()
    startComps.day = 1
    startComps.month = month
    startComps.year = year
     
    let endComps = NSDateComponents()
    endComps.day = 1
    endComps.month = month == 12 ? 1 : month + 1
    endComps.year = month == 12 ? year + 1 : year
     
    let startDate = calendar.dateFromComponents(startComps)!
    let endDate = calendar.dateFromComponents(endComps)!
     
    let diff = calendar.components(.Day, fromDate: startDate, toDate: endDate,
                                   options: .MatchFirst)
    return diff.day
}
测试代码:
1
2
let days = getDaysInMonth(2016, month: 2)
print("2016年2月有\(days)天")
0 0
原创粉丝点击