2010-10-01 18 views

Odpowiedz

132

Najprostszą metodą Jestem świadomy jest:

if([firstDate timeIntervalSinceDate:secondDate] > 0) { 

innych odpowiedzi pokrywa porównać :, chciał dodać trochę smak;) .

+3

sprytny pomysł :) +1 – lukya

+1

znacznie prostszy niż użytkownik NSDate porównać: dobrze zrobione! –

+0

Tak, dzięki. +1 – fnc12

28

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.
11

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) { 
    ... 
} 
+0

Budowa ciągów z 'języka naturalnego' jest teraz całkowicie przestarzała i nie będzie to skompilować. – Lewis42

17

Co o ...

if ([datStartDate earlierDate: datEndDate] == datStartDate) { 
    // datStartDate is earlier 
} else { 
    // datEndDate is earlier 
} 
+0

Dziękuję bardzo :) – Supertecnoboff

2

Swift 2 wersji zaakceptowanej odpowiedzi:

if firstDate.timeIntervalSinceDate(secondDate) > 0 { 
    // firstDate is greater (further in the future) than secondDate 
} 
Powiązane problemy