博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
获取这个指定日期的上月的月初和月末时间
阅读量:6964 次
发布时间:2019-06-27

本文共 1740 字,大约阅读时间需要 5 分钟。

回复一网友问答:

给定一个日期,获取这个日期的上月的月初和月末时间。比如有个时间 是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,如需转载请自行联系原作者

你可能感兴趣的文章
暑假计划
查看>>
重定向
查看>>
UIKit框架(4)App应用沙盒
查看>>
我的友情链接
查看>>
精品JS代码收藏大全
查看>>
(总结)Nginx配置文件nginx.conf中文详解
查看>>
EditPlus—一个小巧但是功能强大的文本编辑器
查看>>
linux系统产生随机数或字符的6种方法
查看>>
(3)lambda与函数式——响应式Spring的道法术器
查看>>
GRE隧道配置
查看>>
Puppet基于Master/Agent模式实现LNMP平台部署
查看>>
Redis配置文件详解
查看>>
Using Helm to Deploy Blockchain to Kubernetes
查看>>
使用流的方式往页面前台输出图片
查看>>
软件测试质量分析与度量
查看>>
Linux crontab定时执行任务 命令格式
查看>>
Why Groovy?
查看>>
云计算将使盗版软件被淘汰
查看>>
综合技术 --spring理解
查看>>
Linux下查看进程占用内存的方式
查看>>