获取这个指定日期的上月的月初和月末时间

简介:

回复一网友问答:

给定一个日期,获取这个日期的上月的月初和月末时间。比如有个时间 是2013-03-01 如何求的2013-02-01和2013-02-28?


//本文日期获取的是系统当前日期,需指定日期直接赋值 year  month  day即可

 NSInteger year,month,day;     NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];     NSDate *now = [NSDate date];;     NSDateComponents *comps = [[NSDateComponents alloc] init];     NSInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekdayCalendarUnit |      NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;          comps = [calendar components:unitFlags fromDate:now];     year = [comps year];     month = [comps month];     day = [comps day];                NSLog(@"现在是:%d年%d月%d日 ",year,month,day);  //   month获取现在的月份,然后 判断是上个月份是否为12月     if (month!=1) {  //       如果mouth!=1,那么上个月月初为1号,年份不变         NSLog(@"上个月月初:%d年%d月1日 ",year,month-1);  //        处理上个月份为2月的特殊情况,         if (month!=3) {  //            如果上个月的月份为 4  6  9  11 月份,他们月末是30号             if (month == 5 || month==7 || month ==10 || month ==12) {                  NSLog(@"上个月月末:%d年%d月30日 ",year,month-1);             }             else {                 NSLog(@"上个月月末:%d年%d月31日 ",year,month-1);             }         }  //        如果本月是3月份,上个月为为2月份,闰年2月月末29天,非闰年28天         else {             if ((year%4==0 && year%100!=0) || year%400==0) {                  NSLog(@"上个月月末:%d年%d月29日 ",year,month-1);             }             else {                  NSLog(@"上个月月末:%d年%d月28日 ",year,month-1);             }         }              }  //    如果当前月份是1月,上个月份就是12月  year-1,month=12     else {         NSLog(@"上个月月初为 %d年12月1日",year-1);         NSLog(@"上个月月末为 %d年12月31日",year-1);     } 



测试效果:





     本文转自新风作浪 51CTO博客,原文链接:http://blog.51cto.com/duxinfeng/1208671,如需转载请自行联系原作者


相关文章
|
27天前
moment常用操作(日期加减、获取月初月末、季度、年)
moment常用操作(日期加减、获取月初月末、季度、年)
60 0
|
2月前
|
关系型数据库 MySQL
MySQL查询当天昨天明天本月上月今年等数据
MySQL查询当天昨天明天本月上月今年等数据
20 2
|
2月前
|
Java
javaEE获取日期前一天后一天当月当天
javaEE获取日期前一天后一天当月当天
13 0
|
3月前
|
关系型数据库 MySQL
MySQL - 获取当天,昨天,本周,本月,上周,上月的起始时间
MySQL - 获取当天,昨天,本周,本月,上周,上月的起始时间
|
4月前
|
小程序
获取本月1号0时间 获取本周一的0点时间
获取本月1号0时间 获取本周一的0点时间
|
8月前
|
关系型数据库 MySQL
MySql查询当天、本周、本月、本季度、本年的数据
MySql查询当天、本周、本月、本季度、本年的数据
76 0
|
安全 芯片 内存技术
百瓦快充来啦!iQOO 5本月发布
2020年Chinajoy如期展开,在开幕首日,iQOO就带来了一项令人震撼的新科技120W闪充。这项技术将在iQOO新机上搭载,会上iQOO也向观众们展示了充电速度,在百瓦快充的加持下,充满100%的电量只用了15分钟。
142 0
百瓦快充来啦!iQOO 5本月发布
|
C#
C#根据当前时间获取周,月,季度,年度等时间段的起止时间
原文:C#根据当前时间获取周,月,季度,年度等时间段的起止时间 最近有个统计分布的需求,需要按统计本周,上周,本月,上月,本季度,上季度,本年度,上年度等时间统计分布趋势,所以这里就涉及到计算周,月,季度,年度等的起止时间了,下面总结一下C#中关于根据当前时间获取周,月,季度,年度等时间段的起止时间的方法,废话不多说,直接贴代码,如果你觉得有用,请多多推荐。
1362 0