Как сравнить две даты в iphone?

Я хочу сравнить сегодняшнюю дату и другую дату, исходящую из моей базы данных. Например, 2011-03-25 сравните его с 2011-02-25

Как я могу создать дату моей базы данных, поскольку NSDateFormatter требует тип данных NSDdate?

Ответ 1

Cocoa имеет пару методов для этого:

в NSDate

- isEqualToDate:
- previousDate:
- laterDate:
- сравните:

Когда вы используете - (NSComparisonResult), сравните: (NSDate *) anotherDate, вы вернете один из них:

The receiver and anotherDate are exactly equal to each other, NSOrderedSame
The receiver is later in time than anotherDate, NSOrderedDescending
The receiver is earlier in time than anotherDate, NSOrderedAscending.

для более подробной информации SO post

Просто просмотрите сообщение в блоге, есть много функций, связанных с датой.

http://arstechnica.com/apple/guides/2010/03/how-to-real-world-dates-with-the-iphone-sdk.ars/2

Ответ 2

NSDate *date1 = [NSDate date];
NSDate *date2 = [NSDate date];

if ([date1 compare: date2]==NSOrderedAscending) {
    NSLog(@"YES");
}

Ответ 4

Если ваша дата является строкой типа year-month-day, вы можете просто сравнить строку:

 if ([date1 compare:string2]==NSOrderedAscending) {
 } else if ([date1 compare:string2]== NSOrderedDescending) {
 } else {
 }

Он будет работать, потому что поля в дате от самого важного до меньшего, как сравнение строк.

Ответ 5

Вы можете использовать сравнение NSDate: или timeIntervalSinceReferenceDate - это поможет вам начать работу

Ответ 6

В Swift:

let date1 = NSDate() //some date
let date2 = NSDate() //another date

let firstDate = date1.earlierDate(date2)
let lastDate = date1.laterDate(date2)