特定の時間を表すNSDate
があります。その日付の形式はhhmmssです。その時間値にNSInterval
値(秒単位で指定)を追加したいと思います。
例:
NSDate = 123000
NSTimeInterval = 3600
Added together = 133000
これを行うための最良の方法は何ですか?
Cocoaの日付と時刻のプログラミングトピック マニュアルを見たことがありますか?
基本的に、時間をNSDateに変換する必要があります。文字列を日付に変換するには、NSDateFormatter
クラスを使用するか、時間、分、秒がわかっている場合はNSDateComponents
を使用します。
NSTimeInterval
はちょうどdouble(つまり、3600.0)です。
次に、NSDateのdateByAddingTimeInterval
メソッドを使用して、時間に秒数を追加します。
NSDate* newDate = [oldDate dateByAddingTimeInterval:3600.0];
その後、NSDateFormatter
またはNSDateComponents
のいずれかを使用して、新しい時間を再び戻すことができます。
addTimeIntervalは非推奨になりました。代わりに dateByAddingTimeInterval を使用してみてください。
// This will set the time when your view appears it will also
// set the time if you want to retrieve from it.
-(void)viewDidAppear:(BOOL)animated
{
//Create todays date
NSDate *duedate = [NSDate date];
//Add how ever many days you could write 86400*numbe_of_days days 86400/24 for an hour
//Then simply reassign the variable or use a different one.
duedate = [duedate dateByAddingTimeInterval:86400]; //I add one day
[datePicker setDate:duedate animated:YES]; //Animate yes will show your pickers moving
[datePicker setMinimumDate:duedate]; //Set minimum date.
}