ios 得到每周的星期一开始和星期天结束的日期

来源:互联网 发布:java把字符串转为整形 编辑:程序博客网 时间:2024/05/14 15:11
NSDate *now = [NSDate date];NSCalendar *calendar = [NSCalendar currentCalendar];NSDateComponents *comp = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit|NSWeekdayCalendarUnit|NSDayCalendarUnit                                       fromDate:now];// 得到星期几// 1(星期天) 2(星期二) 3(星期三) 4(星期四) 5(星期五) 6(星期六) 7(星期天)NSInteger weekDay = [comp weekday];// 得到几号NSInteger day = [comp day];//([comp n],n为year,month,day,hour,minute,second分别得出年月日时分秒)NSLog(@"weekDay:%ld   day:%ld",weekDay,day);// 计算当前日期和这周的星期一和星期天差的天数long firstDiff,lastDiff;if (weekDay == 1) {    firstDiff = 1;    lastDiff = 0;}else{    firstDiff = [calendar firstWeekday] - weekDay+1;    lastDiff = 8 - weekDay;}NSLog(@"firstDiff:%ld   lastDiff:%ld",firstDiff,lastDiff);// 在当前日期(去掉了时分秒)基础上加上差的天数NSDateComponents *firstDayComp = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:now];[firstDayComp setDay:day + firstDiff];NSDate *firstDayOfWeek= [calendar dateFromComponents:firstDayComp];NSDateComponents *lastDayComp = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:now];[lastDayComp setDay:day + lastDiff];NSDate *lastDayOfWeek= [calendar dateFromComponents:lastDayComp];NSDateFormatter *formater = [[NSDateFormatter alloc] init];[formater setDateFormat:@"yyyy-MM-dd HH:mm:ss"];NSLog(@"星期一开始 %@",[formater stringFromDate:firstDayOfWeek]);NSLog(@"当前 %@",[formater stringFromDate:now]);NSLog(@"星期天结束 %@",[formater stringFromDate:lastDayOfWeek]);
0 0
原创粉丝点击