Я хочу сравнить сегодняшнюю дату и другую дату, исходящую из моей базы данных. Например, 2011-03-25 сравните его с 2011-02-25
Как я могу создать дату моей базы данных, поскольку NSDateFormatter требует тип данных NSDdate?
Я хочу сравнить сегодняшнюю дату и другую дату, исходящую из моей базы данных. Например, 2011-03-25 сравните его с 2011-02-25
Как я могу создать дату моей базы данных, поскольку NSDateFormatter требует тип данных NSDdate?
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
NSDate *date1 = [NSDate date];
NSDate *date2 = [NSDate date];
if ([date1 compare: date2]==NSOrderedAscending) {
NSLog(@"YES");
}
Разве это не то же самое на Iphone?
Если ваша дата является строкой типа year-month-day, вы можете просто сравнить строку:
if ([date1 compare:string2]==NSOrderedAscending) {
} else if ([date1 compare:string2]== NSOrderedDescending) {
} else {
}
Он будет работать, потому что поля в дате от самого важного до меньшего, как сравнение строк.
Вы можете использовать сравнение NSDate: или timeIntervalSinceReferenceDate - это поможет вам начать работу
В Swift:
let date1 = NSDate() //some date
let date2 = NSDate() //another date
let firstDate = date1.earlierDate(date2)
let lastDate = date1.laterDate(date2)