2

stackoverflow に関する一般的な質問は、日付から年間通算日を取得する方法ですが、年間通算日から日付を取得する方法は?

次のコードを使用して年間通算日を生成していますが、その逆を行うにはどうすればよいですか?

// Calculate Day of the Year
    NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    NSUInteger dayOfYear = [gregorian ordinalityOfUnit:NSDayCalendarUnit inUnit:NSYearCalendarUnit forDate:[NSDate date]];
    setDayOfYear = dayOfYear;
    return setDayOfYear;
4

1 に答える 1

1

必要な年がわかっていて、日付の実際の時刻が問題ではなく、適切なロケールとタイム ゾーンが設定されていると仮定すると、年間通算日と年をコンポーネントから日付に戻すことができます。繰り返しますが、アプリケーションが時間コンポーネントについて何をする必要があるかを決定する必要がある場合があり、日と年が実際にカレンダーにとって意味があることを確認する必要がありますが、例にリストしたグレゴリオ暦と 200 日を想定しています2013 年 (2013 年 7 月 19 日) の場合、次のようなことができます。

NSDateComponents* components = [[NSDateComponents alloc] init];
[components setDay:200];
[components setYear:2013];
NSDate* july19_2013 = [gregorian dateFromComponents:components];

これを実行すると、現在のロケールが America/Los_Angeles と同等のタイム ゾーンにあり、カレンダーを構成していないため、2013 年 7 月 19 日の 07:00 という日付が取得されます。

于 2013-07-10T07:17:04.713 に答える