码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2014-08-20 15:44:32      阅读:305      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   os   io   for   ar   div   

得到每周 星期一零点(即本周的开始) 和星期天 24 点(即本周的结束和下一周的开始)的时间

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];

NSLog(@"weekDay:%ld   day:%ld",weekDay,day);
    
// 计算当前日期和这周的星期一和星期天差的天数
long firstDiff,lastDiff;
if (weekDay == 1) {
    firstDiff = 1;
    lastDiff = 0;
}else{
    firstDiff = [calendar firstWeekday] - weekDay;
    lastDiff = 9 - 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]);

 

ios 得到每周的星期一开始和星期天结束的日期,布布扣,bubuko.com

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

标签:style   blog   color   os   io   for   ar   div   

原文地址:http://www.cnblogs.com/lesliefang/p/3924537.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!