cocoa - 两个给定 NSDate 之间的 NSDate

标签 cocoa nsdate

我有兴趣创建一种方法来查找当前日期是否落在任何给定日期的特定时间之间。这是一个调度程序,所以我想找到当前时间正在发生什么事件。每天都有相同的时间集: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/

相关文章:

ios - 在 Storyboard中更改 View 时保存 NSDate 数据 - iOS

ios - UIDatePicker 没有时区的 NSDate

json - 使用 SwiftyJSON 反序列化 NSDate

ios - 将时间字符串转换为日期并找到即将到来的日期

Cocoa 绑定(bind)和应用程序首选项 - 崩溃

macos - OS X - NSViewController 如何找到它的窗口?

macos - 在 Xamarin 中使用 NSAppleEventsUsageDescription 获取登录项

cocoa - 我应该如何处理新 Cocoa 应用程序中 MainMenu 中的默认菜单项?

objective-c - 如何以编程方式绑定(bind) NSCollectionView 的 View 子类?

objective-c - NSDate 日期方法返回错误结果