2009-11-28 2 views
1

привет, я хочу знать, как получить текущую дату? Я хочу сравнить текущую дату с датой i m, извлекаемой из файлов plist, используя следующий код.Сравнение дат в Какао

NSDate *expDate = [licenseDictionary objectForKey:@"Expires"]; 

для сравнения я использую следующий код

if([curDate compare:expDate] == NSOrderedAscending) 

, но он не работает. Кто-нибудь может мне помочь.

+0

Это сделало бы намного проще тех, кто пытается помочь вам, если вы скажете нам, как это «не работает». –

+0

Основываясь на приведенных выше утверждениях, я хочу выполнить некоторые действия. но проблема, с которой я сталкиваюсь, заключается в том, что она не выполняет код после того, как не будет частью else. – Shakti

ответ

5

В интересах обучения кого-то, как ловить рыбу, а не только кормить его:

Посмотрите на Date and Time Programming Guide.. Руководства по программированию в документации - это ваша первая остановка при попытке понять тему. Они дают обзор того, что можно сделать, и содержат полезный пример кода.

Эти руководства также содержат ссылки на документацию по конкретным классам, которые используются. В этом случае есть NSDate Class Reference, который имеет разделы на creating dates и comparing dates.

Редактировать

Чтобы ответить на комментарий Вы об этом не работает, я думаю, что проблема может быть, что вы не создали объект, который вы храните в словаре как NSDate. Еще раз. Взгляните на документацию creating dates. Это будет что-то вроде

NSDate *expiryDate = [NSDate dateWithNaturalLanguageString:@"31/01/10"]; 

Но это всего лишь пример, есть другие способы установки строки даты.

+0

Вы можете сохранить объект даты в списке свойств, если вы не используете формат OpenStep. Поэтому вопросчику не нужно восстанавливать его из строки, потому что они не должны помещать его в plist как строку в первую очередь. –

+0

Извините, вот что я имел в виду. OP должен хранить объект даты в словаре напрямую, я просто пытался привести пример того, как он мог создать эту дату, поскольку вопрос задает вопрос о том, как создать дату. – Abizern

+0

Я создаю файл лицензии в виде plist. В этом plist, в разделе «Expires», я добавляю дату, как 26 ноября 2009 года, как значение для этого ключа.В коде проверки я присвоил это значение объекту NSDate как NSDate * expDate = [licenseDictionary objectForKey: @ "Expires"]; используя это значение expdate i m, сравнивающее текущую дату. Ошибка не возникает, но все же я не получаю желаемого результата. – Shakti

1

Чтобы получить текущую дату, просто используйте:

NSDate * today = [NSDate date]; 

Для сравнения на другую дату:

if ([today compare:expirationDate] == NSOrderedAscending) 
{ 
    // today's date is before the expiration date 
} 
+0

спасибо james. Я пробовал этот, но все еще не работал в моем случае. для даты истечения срока, каков должен быть формат даты? – Shakti

+0

Сохраняете ли вы NSDate в словаре или строковое представление даты? – Abizern

+0

Я создаю файл лицензии в виде plist. В этом plist, в разделе «Expires», я добавляю дату, как 26 ноября 2009 года, как значение для этого ключа. В коде проверки я присвоил это значение объекту NSDate как NSDate * expDate = [licenseDictionary objectForKey: @ "Expires"]; , используя это значение expdate i m, сравнивающее текущую дату. Ошибка не возникает, но все же я не получаю желаемого результата. – Shakti