【问题标题】:Need advice about time comparison using NSDate需要有关使用 NSDate 进行时间比较的建议
【发布时间】:2010-06-02 02:40:31
【问题描述】:

我正在开发闹钟。 我想比较现在和 setTime 的时间。是否可以仅在几分钟内进行比较。

我的问题是 NSDate 会以秒为单位进行比较,例如 9:38:50 不等于 9:38:00。 如何在几分钟内进行比较?

【问题讨论】:

    标签: iphone comparison nsdate


    【解决方案1】:

    首先,将它们转换为忽略毫秒的 UNIX 时间戳。

    NSUInteger time1 = (NSUInteger)[date1 timeIntervalSince1970];
    NSUInteger time2 = (NSUInteger)[date2 timeIntervalSince1970];
    

    忽略秒数。

    time1 = time1 - (time1 % 60);
    time2 = time2 - (time2 % 60);
    

    现在,您可以放心地比较它们了。

    if (time1 == time2) {
      NSLog(@"Bingo");
    }
    

    【讨论】:

      【解决方案2】:

      使用NSCalendar 获取您感兴趣的NSDateComponents。然后很容易比较它们。

      尽管检查当前日期是否晚于警报日期可能就足够了。如果是这样并且警报没有停止,即使计算机暂时断电或其他什么,您也应该关闭。

      【讨论】:

        猜你喜欢
        • 2014-11-29
        • 2014-08-23
        • 1970-01-01
        • 1970-01-01
        • 2023-01-12
        • 2011-01-16
        • 1970-01-01
        • 1970-01-01
        • 2017-01-16
        相关资源
        最近更新 更多