Манипулирование датами в iphone sdk? - PullRequest
2 голосов
/ 06 декабря 2010

Я использую следующий код для сравнения только двух дат (не времени), а также времени, но он всегда возвращает будущее ... любая помощь, пожалуйста? Как я могу изменить следующий код, чтобы сделать это?

   NSComparisonResult result = [[NSDate date] compare:[NSDate date]];

        switch (result)
        {
            case NSOrderedAscending: 
                NSLog(@" in future"); 


                break;
            case NSOrderedDescending: 
                NSLog(@" in past");
                break;
            case NSOrderedSame:
                NSLog(@" in same");
               break;
            }

1 Ответ

2 голосов
/ 06 декабря 2010

[NSDate date] создаст новый объект даты, используя текущие дату и время. Поскольку вы создаете два объекта NSDate в разное время (но только с разницей в миллисекунды), поэтому он всегда возвращается в будущем.

Я могу придумать два способа это исправить.

Создать объект даты только:

NSDate *currentDate = [NSDate date];
NSComparisonResult result = [currentDate compare:currentDate];

Или Вы можете использовать NSTimeInterval, который возвращает разницу во времени в секундах:

(NSTimeInterval)timeIntervalSinceDate:(NSDate *)anotherDate
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...