【发布时间】:2010-06-02 02:40:31
【问题描述】:
我正在开发闹钟。 我想比较现在和 setTime 的时间。是否可以仅在几分钟内进行比较。
我的问题是 NSDate 会以秒为单位进行比较,例如 9:38:50 不等于 9:38:00。 如何在几分钟内进行比较?
【问题讨论】:
标签: iphone comparison nsdate
我正在开发闹钟。 我想比较现在和 setTime 的时间。是否可以仅在几分钟内进行比较。
我的问题是 NSDate 会以秒为单位进行比较,例如 9:38:50 不等于 9:38:00。 如何在几分钟内进行比较?
【问题讨论】:
标签: iphone comparison nsdate
首先,将它们转换为忽略毫秒的 UNIX 时间戳。
NSUInteger time1 = (NSUInteger)[date1 timeIntervalSince1970];
NSUInteger time2 = (NSUInteger)[date2 timeIntervalSince1970];
忽略秒数。
time1 = time1 - (time1 % 60);
time2 = time2 - (time2 % 60);
现在,您可以放心地比较它们了。
if (time1 == time2) {
NSLog(@"Bingo");
}
【讨论】:
使用NSCalendar 获取您感兴趣的NSDateComponents。然后很容易比较它们。
尽管检查当前日期是否晚于警报日期可能就足够了。如果是这样并且警报没有停止,即使计算机暂时断电或其他什么,您也应该关闭。
【讨论】: