本帖最后由 天行九歌 于 2023-2-22 10:56 编辑
- -(void)test{
-
-
- NSDate *now = [NSDate date];
- NSCalendar *calendar = [NSCalendar currentCalendar];
- NSDateComponents *comp = [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay|NSCalendarUnitWeekday|NSCalendarUnitDay
- 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:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:now];
- [firstDayComp setDay:day + firstDiff];
- NSDate *firstDayOfWeek= [calendar dateFromComponents:firstDayComp];
-
- NSDateComponents *lastDayComp = [calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay 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]);
- }
复制代码
|