我创建了一种方法来计算一周的第一天和最后一天,方法是将一天 (86,400) 的时间间隔添加到日期,乘以所需的天数。
一位同事评论说“添加 86,400 的倍数永远不是答案”。为什么会这样?
这是我创建的类别方法,我该如何改进?
- (NSDate*)firstDayOfWeek
{
return [self dateWithDaysAddedGivenDayOfWeek:@{
@1 : @-6,
@2 : @0,
@3 : @-1,
@4 : @-2,
@5 : @-3,
@6 : @-4,
@7 : @-5
}];
}
- (NSDate*)lastDayOfWeek
{
return [self dateWithDaysAddedGivenDayOfWeek:@{
@1 : @0,
@2 : @6,
@3 : @5,
@4 : @4,
@5 : @3,
@6 : @2,
@7 : @1
}];
}
- (NSDate*)dateWithDaysAddedGivenDayOfWeek:(NSDictionary*)daysToAddGivenDay
{
NSDateComponents* components = [[NSCalendar currentCalendar]
components:NSYearCalendarUnit | NSMonthCalendarUnit | NSWeekCalendarUnit | NSWeekdayCalendarUnit fromDate:self];
NSInteger daysToAdd = [[daysToAddGivenDay objectForKey:@([components weekday])] integerValue];
return [self dateByAddingTimeInterval:daysToAdd * 60 * 60 * 24];
}
我需要在一天中使用不同的时间间隔吗?(例如 23 小时 56 分钟 4.1 秒)