我有兴趣创建一种方法来查找当前日期是否落在任何给定日期的特定时间之间。这是一个调度程序,所以我想找到当前时间正在发生什么事件。每天都有相同的时间集:820-900、900-940、940-1020 等。由于这必须在任何给定的一天完成,所以我不知道如何创建具有特定时间的 NSDate。我认为这可以通过 NSTimeInterval 完成,但我不确定如何实例化它。
最佳答案
这并不完美,但您可以使用 [NSDate Compare:] 来根据两个边界检查您的日期:
NSDate *firstDate = ...
NSDate *secondDate = ...
NSDate *myDate = [NSDate date];
switch ([myDate compare:firstDate]) {
case NSOrderedAscending:
NSLog(@"myDate is older");
// do something
break;
case NSOrderedSame:
NSLog(@"myDate is the same as firstDate");
// do something
break;
case NSOrderedDescending:
NSLog(@"myDate is more recent");
// do something
break;
}
switch ([myDate compare:secondDate]) {
case NSOrderedAscending:
NSLog(@"myDate is older");
// do something
break;
case NSOrderedSame:
NSLog(@"myDate is the same as secondDate");
// do something
break;
case NSOrderedDescending:
NSLog(@"myDate is more recent");
// do something
break;
}
或更简单地说:
BOOL between = NO;
if (([myDate compare:firstDate] == NSOrderedDescending) &&
([myDate compare:secondDate] == NSOrderedAscending)) {
between = YES;
}
我确信有更好的方法来进行复杂的日期比较,但这应该可行。
关于cocoa - 两个给定 NSDate 之间的 NSDate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1987506/