if (datStartDate > datEndDate) {
To nie działa. Wiem, że istnieje isEqual
itp., Ale w jaki sposób wykonać "jest większy niż"?Sprawdzanie, czy jeden plik NSDate jest większy niż inny
Dostępne są zarówno NSDate
.
if (datStartDate > datEndDate) {
To nie działa. Wiem, że istnieje isEqual
itp., Ale w jaki sposób wykonać "jest większy niż"?Sprawdzanie, czy jeden plik NSDate jest większy niż inny
Dostępne są zarówno NSDate
.
Najprostszą metodą Jestem świadomy jest:
if([firstDate timeIntervalSinceDate:secondDate] > 0) {
innych odpowiedzi pokrywa porównać :, chciał dodać trochę smak;) .
Aby porównać daty używać -compare:
metoda:
Return Value If:
- Odbiornik i anotherDate są dokładnie równa się nawzajem, NSOrderedSame
- Odbiornik jest później w czasie niż innyData, NSOrderedDesc kończąc
- Odbiornik jest wcześniej w czasie niż anotherDate, NSOrderedAscending.
Jak masz NSDates:
NSDate *datStartDate = [NSDate dateWithString:@"2010-10-01 03:00:00 +0900"];
NSDate *datEndDate = [NSDate dateWithString:@"2010-10-01 04:00:00 +0900"];
if (([datStartDate compare:datEndDate]) == NSOrderedDescending) {
...
}
Budowa ciągów z 'języka naturalnego' jest teraz całkowicie przestarzała i nie będzie to skompilować. – Lewis42
Co o ...
if ([datStartDate earlierDate: datEndDate] == datStartDate) {
// datStartDate is earlier
} else {
// datEndDate is earlier
}
Dziękuję bardzo :) – Supertecnoboff
Swift 2 wersji zaakceptowanej odpowiedzi:
if firstDate.timeIntervalSinceDate(secondDate) > 0 {
// firstDate is greater (further in the future) than secondDate
}
sprytny pomysł :) +1 – lukya
znacznie prostszy niż użytkownik NSDate porównać: dobrze zrobione! –
Tak, dzięki. +1 – fnc12