IOS获取下个月最后一天

来源:互联网 发布:网络语ko是什么意思 编辑:程序博客网 时间:2024/05/21 07:51

     获取某个月的开始或者结束的一天,是比较常用的一个需求,但真要写~ 要是有点头疼的!查资料查到一脸懵B的时候,看到了这个代码片段

<!-- lang: cpp -->//    先定义一个遵循某个历法的日历对象NSCalendar *greCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];//    通过已定义的日历对象,获取某个时间点的NSDateComponents表示,并设置需要表示哪些信息(NSYearCalendarUnit, NSMonthCalendarUnit, NSDayCalendarUnit等)NSDateComponents *dateComponents = [greCalendar components:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit | NSWeekCalendarUnit | NSWeekdayCalendarUnit | NSWeekOfMonthCalendarUnit | NSWeekOfYearCalendarUnit fromDate:[NSDate date]];NSLog(@"year(年份): %i", dateComponents.year);NSLog(@"quarter(季度):%i", dateComponents.quarter);NSLog(@"month(月份):%i", dateComponents.month);NSLog(@"day(日期):%i", dateComponents.day);NSLog(@"hour(小时):%i", dateComponents.hour);NSLog(@"minute(分钟):%i", dateComponents.minute);NSLog(@"second(秒):%i", dateComponents.second);//    Sunday:1, Monday:2, Tuesday:3, Wednesday:4, Friday:5, Saturday:6NSLog(@"weekday(星期):%i", dateComponents.weekday);//    苹果官方不推荐使用weekNSLog(@"week(该年第几周):%i", dateComponents.week);NSLog(@"weekOfYear(该年第几周):%i", dateComponents.weekOfYear);NSLog(@"weekOfMonth(该月第几周):%i", dateComponents.weekOfMonth);
     想到完全可以通过这个来找到两个月后的第一天~ 然后通过减一天来找到下个月的最后一天,所以,下月最后一天即如下所示:
 
 NSCalendar* cal=[NSCalendar currentCalendar]; NSDateComponents *dateComponents = [cal components:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:[NSDate date]]; //设置日为1号 dateComponents.day =1; //设置月份为后延2个月 dateComponents.month +=2; NSDate * endDayOfNextMonth = [cal dateFromComponents:dateComponents]; //两个月后的1号往前推1天,即为下个月最后一天 endDayOfNextMonth = [endDayOfNextMonth dateByAddingTimeInterval:-1];
 这段代码总体来说,对于找相对月份的第一天,最后一天,第N天来说,都相对简单!比我看到的网上的其他示例更加简洁!

参考资料:http://my.oschina.net/yongbin45/blog/156181

1 0
原创粉丝点击