[objective-c]比较三个日期

发布时间: 2016/10/1 19:39:34
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有三个日期开始日期, stopDatecurrentDate 。我需要比较 '开始日期 < = 'currentDate' 和 'stopDate' > = 'currentDate'。我的代码。

unsigned int flagsDate = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;

    NSDateComponents* fromComponents = [[NSCalendar currentCalendar] components:flagsDate fromDate:startDate];
    NSDate* fromDateOnly = [[NSCalendar currentCalendar] dateFromComponents:fromComponents];

    NSDateComponents* toComponents = [[NSCalendar currentCalendar] components:flagsDate fromDate:stopDate];
    NSDate* toDateOnly = [[NSCalendar currentCalendar] dateFromComponents:toComponents];

    NSDate * currentDate = [NSDate date];
    NSDateComponents* currComponents = [[NSCalendar currentCalendar] components:flagsDate fromDate: currentDate];
    NSDate* currDateOnly = [[NSCalendar currentCalendar] dateFromComponents:currComponents];

    NSTimeInterval fromTime = [fromDateOnly timeIntervalSinceReferenceDate];
    NSTimeInterval toTime = [toDateOnly timeIntervalSinceReferenceDate];
    NSTimeInterval currTime = [currDateOnly timeIntervalSinceReferenceDate];

    NSLog(@"%@ %@",currentDate, currDateOnly);
    NSLog(@"%@ %@",startDate, fromDateOnly);
    NSLog(@"%@ %@",stopDate, toDateOnly);

这是什么带来了 nslog。

2014-04-10 23:59:53.280 日历 [2148:90b] 2014年-04-10 19:59:53 + 0000 2014年-04-09 20:00 + 0000 2014年-04-10 23:59:53.282 日历 [2148:90b] 2014年-04-10 20:14:12 + 0000 2014年-04-10 20:00 + 0000 2014年-04-10 23:59:53.282 日历 [2148:90b] 2015年-04-09 20:14:12 + 0000 2015年-04-09 20:00 + 0000

如何比较日期?我需要比较日期只是没有时间。如果时间小于 20:00,为什么更改的日期吗?

解决方法 1:

惯性 distanceBetweenDates = [开始日期 timeIntervalSinceDate:EndDate];

if (distanceBetweenDates > 0) {
    NSLog("Greather than ")
} else  if (distanceBetweenDates < 0) {
    NSLog("less than");
} else {
    NSLog("Equal");
}
赞助商