码迷,mamicode.com
首页 > 其他好文 > 详细

获取当月天数

时间:2015-08-06 15:07:28      阅读:105      评论:0      收藏:0      [点我收藏+]

标签:ios获取当月天数   字符串转日期   

今天写个日历,需要知道当月天数,在百度N久之后,都没有收获或者方法不尽人意,

于是,我看NSCanlendar类中的方法说明,终于找到了rangeIfUnit这个方法,帮助说明如下图所示,

       技术分享


① 小单位是NSDayCalendarUnit,大单位是NSYearCalendarUnit,并不是要取这一年包含多少天,而是要取"天"(Day)这个单位在这一年(Year)的取值范围。其实不管你提供的日期是多少,返回的值都是"1--31"。

② 小单位是NSDayCalendarUnit,大单位是NSMonthCalendarUnit。要取得参数时间点所对应的月份下,"天"(Day)的取值范围。根据参数时间的月份不同,值也不同。例如2月是1--28、3月是1--31、4月是1--30。

③ 小单位是NSWeekCalendarUnit,大单位是NSMonthCalendarUnit。要取得参数时间点所对应的月份下,"周"(Week)的取值范围。需要注意的是结果会受到minimumDaysInFirstWeek属性的影响。在默认minimumDaysInFirstWeek情况下,取得的范围值一般是"1--5",从日历上可以看出来这个月包含5排,即5个周。

④ 小单位是NSDayCalendarUnit,大单位是NSWeekCalendarUnit。要取得周所包含的"天"(Day)的取值范围。

下面给出获取天数的示例代码


//获取当前月天数
+(NSInteger) totalDayOfMonthWithDate:(NSString*) date format:(NSString*) format{
    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSRange range = [calendar rangeOfUnit:NSCalendarUnitDay inUnit:NSCalendarUnitMonth forDate:[PubConstans dateFromString:date format:format]];
    return range.length;
}


其中上述代码中的dateFromString方法为封装字符串转换成日期的方法,代码如下:

+(NSDate*) dateFromString:(NSString*) date format:(NSString*) format{
    NSDateFormatter *formatter = [[NSDateFormatter alloc ] init];
    [formatter setDateFormat:format];
    return [formatter dateFromString:date];
}


相应的改变rangeOfUnit的参数,就可以得到不同的范围,读者可以自己试一下!

上述内容,如果有不正确的,还望批评指正!


版权声明:本文为博主原创文章,未经博主允许不得转载。

获取当月天数

标签:ios获取当月天数   字符串转日期   

原文地址:http://blog.csdn.net/chengjiamei/article/details/47316045

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!