1

今日の日付のいくつかのコンポーネントを NSDateComponent で次のように設定しようとしています:

    NSDateComponents *comps = [[NSDateComponents alloc] init];
    [comps setDay:1];
    [comps setHour:1];
    [comps setMinute:44];
    NSCalendar *cal = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
    NSDate *date = [cal dateByAddingComponents:comps toDate:[NSDate date] options:0];
    [comps release];
    NSLog(@"%@", date);

ただし、この例では、時刻を現在の日付に加算します。今私がしたいのは、ある日を追加することですが、時間と分を指定された値に設定します(追加なし)。これどうやってするの?

4

2 に答える 2

2

これは最終的に機能しました:

NSDateComponents *comp = [[NSCalendar currentCalendar] components:NSYearCalendarUnit
NSMonthCalendarUnit | NSDayCalendarUnit fromDate:[NSDate date]];
[comp setDay:[comp day] +1];
[comp setHour: 12];
[comp setMinute: 00];
NSDate *date = [[NSCalendar currentCalendar] dateFromComponents:comp];
于 2010-07-17T13:59:59.303 に答える
0

簡単:dateプロパティを使用するだけです...

NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setDay:1];
[comps setHour:1];
[comps setMinute:44];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *date = [gregorian dateFromComponents:comps];

編集:カレンダーを忘れました。マニュアルから(太字のNSDateComponentsの最初のページ):

重要:NSDateComponentsオブジェクト自体は無意味です。どのカレンダーに対して解釈されるかを知る必要があり、値が単位の絶対値なのか、単位の数量なのかを知る必要があります。

使い方の例もあります。

于 2010-07-17T12:09:41.197 に答える