Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 仅根据年-月-日比较NSDate对象_Iphone_Nsdate - Fatal编程技术网

Iphone 仅根据年-月-日比较NSDate对象

Iphone 仅根据年-月-日比较NSDate对象,iphone,nsdate,Iphone,Nsdate,如果我想使用比较方法比较两天: [day1 compare:day2] == NSOrderedAscending 如何仅按年-月-日进行比较?一天中有86400秒,因此如果您得到两个日期自参考日期起的秒数,您可以将它们除以86400并比较这两个数字 这将为您(在天1和天2中)提供自1970年1月1日以来经过的日期天数。然后你可以比较它们 int days1 = [date1 timeIntervalSince1970] / 86400; int days2 = [date2 timeInte

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

[day1 compare:day2] == NSOrderedAscending

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

一天中有86400秒,因此如果您得到两个日期自参考日期起的秒数,您可以将它们除以86400并比较这两个数字

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

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

理想情况下,您希望编写以下内容:

if ([date1 isSameDayAs:date2]) {...}
@implementation NSDate (Extensions)
- (BOOL) isSameDayAs:(NSDate *)date2
{
    int days1 = [self  timeIntervalSince1970] / 86400;
    int days2 = [date2 timeIntervalSince1970] / 86400;
    return (days1 == days2);
}
@end
您可以在NSDate上通过一个简单的类别来实现这一点,例如:

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

你是说,不包括时间?