2010-12-06 5 views
0

Je veux définir la date et l'heure deux jours après ma date actuelle et l'heure.Comment je l'ai défini en utilisant NSDate et dateformatter. Je veux comparer la date après deux jours, il était déjà fixé ou non. J'écris le code maintenant, NSCalendar * calendar = [NSCalendar autoupdatingCurrentCalendar];Comment je campare deux dates à Iphone?

NSDate *pickerDate = [self.datePicker date]; 

NSDateComponents *dateComponents = [calendar components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) 
               fromDate:pickerDate]; 

NSDateComponents *timeComponents = [calendar components:(NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit) 
               fromDate:pickerDate]; 

NSDateComponents *dateComps = [[NSDateComponents alloc] init]; 

[dateComps setDay:[dateComponents day]]; 
[dateComps setMonth:[dateComponents month]]; 
[dateComps setYear:[dateComponents year]]; 
[dateComps setHour:[timeComponents hour]]; 
[dateComps setMinute:[timeComponents minute]]; 
[dateComps setSecond:00]; 

NSDate *itemDate = [calendar dateFromComponents:dateComps]; 
[dateComps release]; 
appDelegate.setTimerByUser = [itemDate retain]; 

Comment je compare avec l'heure et la date? Merci

+0

S'il vous plaît être un peu plus clair sur ce que vous voulez comparer. Chaînes formatées qui représentent des dates? Ou juste deux objets dat? Que voulez-vous dire par "précédemment défini ou non"? –

Répondre

1

Regardez dans NSDate.h et lisez les docs d'Apple pour la fonction -compare sur NSDates.

Vous pouvez le faire par exemple:

NSDate *now = [NSDate date]; 
NSDate *future = [now dateByAddingTimeInterval: 2 * 24 * 60 * 60]; // add two days 

if ([now compare: future] == NSOrderedAscending) { 
    // now is earlier than future so we will always get here 
} else { 
    // never reached but illustrates how you might use compare 
} 
0

Je pense que vous avez besoin de NSDateComponents. Vous pouvez utiliser cette classe pour obtenir l'année, le mois, le jour et d'autres attributs concernant la date et l'heure.

0
NSDate * now = [NSDate date]; 
NSDate * twoDaysFromNow = [now dateByAddingTimeInterval:(2 * 24* 60 * 60)]; 

Vous pouvez comparer avec -earlierDate: ou -laterDate: méthodes de NSDate.

+0

aujourd'hui date est 6/12/2010 11:10:22 et je veux définir et comparer la date et l'heure après deux jours 8/12/2010 01: 20: 30.Comment puis-je comparer ces date et heure? – Tirth

Questions connexes