2009-04-23 4 views
20

特定の時間を表すNSDateがあります。その日付の書式はhhmmssです。その時刻の値にNSIntervalの値(秒単位で指定)を追加したいとします。NSTimeIntervalをNSDateにココアで追加します

例:

NSDate =   123000 
NSTimeInterval = 3600 

Added together = 133000 

これを行うための最善の方法は何ですか?

答えて

52

Dates and Times Programming Topics for Cocoaマニュアルを見ましたか?

基本的にあなたの時間をNSDateに変換する必要があります。文字列を日付に変換するには、NSDateFormatterクラスを使用するか、または時、分、秒をすでに知っている場合はNSDateComponentsを使用します。

NSTimeIntervalは単なる倍数(つまり3600.0)です。

次に、NSDateのdateByAddingTimeIntervalメソッドを使用して秒数を追加します。

NSDate* newDate = [oldDate dateByAddingTimeInterval:3600.0]; 

その後、再び新しい時刻を取得するためにNSDateFormatterまたはNSDateComponentsのいずれかを使用することができます。

+0

ありがとう、ちょうど私が必要なもの! –

+0

addTimeInterval:iOS 4.0では非推奨です。 dateByAddingTimeIntervalを使用してください: - http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSDate_Class/Reference/Reference.html –

+0

@ SeungUnHam確かに。答えはiPhone OS 2.xが最新版だったときに書かれましたが、現在の推奨事項を反映するように更新しました。 –

1
// 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. 
} 
関連する問題