2010-08-08 55 views
2

而言对象如果我想用比较法两天比较:比较的NSDate只有在年月日

[day1 compare:day2] == NSOrderedAscending 

如何只能由年 - 月 - 日比?

+0

你的意思是,不计时间? – zneak 2010-08-08 01:17:24

回答

4

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

这会给你(在days1days2)天对已通过的日期自1月1日,1970年然后,您可以比较它们的数量。

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

理想情况下,你想编写类似:

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

您可以在NSDate的简单分类实现这一目标,sonething像:

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