回复一网友问答:
成都创新互联制作网站网页找三站合一网站制作公司,专注于网页设计,成都网站设计、网站建设,网站设计,企业网站搭建,网站开发,建网站业务,680元做网站,已为成百上千服务,成都创新互联网站建设将一如既往的为我们的客户提供最优质的网站建设、网络营销推广服务!给定一个日期,获取这个日期的上月的月初和月末时间。比如有个时间 是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); }
测试效果:
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。