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

82 篇文章 1 订阅
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)天" )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值