2009-06-09 14 views
3

Könnte mir bitte jemand helfen, herauszufinden, wie man überprüft, ob ein Datum vom selben Tag wie heute ist. Ich denke, es würde erfordern, einen Kalendertag um 0 Uhr desselben Tages in der gleichen Zeitzone zu erstellen und dagegen zu überprüfen, aber bis jetzt haben mich meine Versuche mehr als alles andere verwirrt.Überprüfen, ob ein Datum vom selben Kalendertag ist

Antwort

5

NSCalendar können Sie mit menschlichen Tagen beschäftigen. So könnte man eine Kategorie so etwas wie dies umzusetzen:

@implementation NSDate (IsItToday) 
- (BOOL)isToday { 
    NSUInteger desiredComponents = NSEraCalendarUnit|NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit; 
    NSDateComponents *myCalendarDate = [[NSCalendar currentCalendar] components:desiredComponents fromDate:self]; 
    NSDateComponents *today = [[NSCalendar currentCalendar] components:desiredComponents fromDate:[NSDate date]]; 
    return [myCalendarDate isEqual:today]; 
} 
@end 
+0

perfekt, danke !!! Wenn ich mir den Code anschaue, werde ich mich nicht selbst verprügeln, weil ich ihn nicht alleine bekommen kann :) – dizy

-1

Sie sollten ein gutes Buch über diese Dates and Times Programming Topics for Cocoa nehmen, aber so etwas wie dies funktionieren soll:

NSDate *today = [NSDate date]; 
NSTimeInterval difference = [today timeIntervalSinceDate:otherDate]; 
NSTimeInterval secondsPerDay = 24 * 60 * 60; 
if (difference < secondsPerDay) 
{ 
    //same day as today 
} 
+0

Die für 24 Stunden überprüft, nicht, ob es das gleiche Datum – dizy

+0

Ihre Antwort falsch ist (die Frage bittet um Kalendertag, nicht Zeitintervalle). Bitte lesen Sie die Frage sorgfältig, bevor Sie jemanden an rtfm weiterleiten! – Christoph

Verwandte Themen