仅在年月日比较NSDate对象

时间:2010-08-08 01:09:56

标签: iphone nsdate

如果我想使用compare方法比较两天:

[day1 compare:day2] == NSOrderedAscending

如何仅按年 - 月 - 日进行比较?

2 个答案:

答案 0 :(得分:4)

一天有86400秒,所以如果您获得两个日期的参考日期后的秒数,您可以将它们除以86400并比较这两个数字。

这将为您(在days1days2中)提供自1970年1月1日 st 以来经过的日期的天数。然后您可以比较它们

int days1 = [date1 timeIntervalSince1970] / 86400;
int days2 = [date2 timeIntervalSince1970] / 86400;

答案 1 :(得分:0)

理想情况下,你想写一些类似的东西:

if ([date1 isSameDayAs:date2]) {...}

你可以在NSDate上使用一个简单的类别实现这一点,声音如下:

@implementation NSDate (Extensions)
- (BOOL) isSameDayAs:(NSDate *)date2
{
    int days1 = [self  timeIntervalSince1970] / 86400;
    int days2 = [date2 timeIntervalSince1970] / 86400;
    return (days1 == days2);
}
@end