2010-12-06 1 views
0

私は現在の日付と時刻の2日後に日付と時刻を設定したいと思います。私はNSDateとdateformatterを使って設定しました。私は2日後に日付を比較したい、それは明らかに設定されているかどうか。私はiPhoneの2つの日付をどのようにキャンプするのですか?

私は今すぐコードを書いています。 NSCalendar * calendar = [NSCalendar autoupdatingCurrentCalendar];

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]; 

どのように現在の日付と時刻を比較しますか? ありがとう

+0

比較したいかについて少し明確にしてください。日付を表す書式付き文字列?または2つのdatオブジェクト? 「以前に設定されたかどうか」とはどういう意味ですか? –

答えて

1

NSDate.hを見て、NSDatesの-compare関数についてAppleのドキュメントを読んでください。あなたは、たとえば行うことができます

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

あなたはNSDateComponentsが必要だと思います。このクラスを使用して、年、月、日、および日付と時刻に関するその他の属性を取得できます。あなたはNSDateの-earlierDate:または-laterDate:方法と比較することができ

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

+0

今日の日付は6/12/2010 11:10:22で、2日後に日付と時刻を設定して比較したいと思っています。2010年8月12日01:20:30その日付と時刻を比較しますか? – Tirth

関連する問題