0
我想知道现在和下一个星期三14:00之间的差异。计算直到iOS中给定时间点的时间
我发现[NSDate date];
给我的当前时间和日期,以及一个NSTimeInterval
通常被用于此目的(我想在其他地方使用这个区间,和别的地方想一个NSTimeInterval),所以代码将如下所示:
NSDate *now = [NSDate date];
NSDate *nextWednesday = ???;
// profit
NSTimeInterval secondsUntilNextWednesday = [nextWednesday timeIntervalSinceDate:now];
但是,如何得到下一个星期三的日期?编辑2:我改进了方法,我仍然非常不喜欢它,但这是一个巨大的进步。此外,它更让人想起我的伪装尝试。
- (NSTimeInterval)secondsUntilNextWednesday
{
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDate *today = [NSDate date];
NSDateComponents *components = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate: today];
// 17 == 15:00, seemingly. (timezones)
[components setHour:17];
[components setWeekday:4];
NSDate *wednesday = [calendar dateFromComponents:components];
NSTimeInterval secondsToWednesday = [wednesday timeIntervalSinceDate:today];
// if secondsToWednesday is negative, it has already been wednesday, 15:00 (or 16:00 depending on DST)
if (secondsToWednesday < 0)
{
secondsToWednesday += 604800;
}
return secondsToWednesday;
}