您好,登錄后才能下訂單哦!
回復一網友問答:
給定一個日期,獲取這個日期的上月的月初和月末時間。比如有個時間 是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); }
測試效果:
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。