0

年間通算日から日付を取得するにはどうすればよいですか? たとえば、日を「1」とすると、日付は「1 月 1 日」になります。

iPhoneでそれを取得するにはどうすればよいですか?私はjavascriptで答えを見つけましたが、Objectiveで同じことを達成する方法を知りたいですか?

4

2 に答える 2

2

このコードはうまくいくと思います: テキストフィールドが追加する日数の入力値を与えるサンプル関数を作成しました。そして、最終日を計算するボタン。ボタン イベント ロジックは次のとおりです。

  NSDateComponents *dateComponent = [[NSDateComponents alloc] init];
  NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
  [formatter setDateFormat:@"yyyy-mm-dd"];

  NSDate *newDate =  [formatter dateFromString:@"2012-01-01"];

  // add days to current date
  dateComponent.day = [dayTextField.text intValue];

  // get a new date by adding components
  newDate = [[NSCalendar currentCalendar] dateByAddingComponents: dateComponent toDate:newDate options:0];

  [finalDate setText:[NSString stringWithFormat:@"%@", newDate]];

ここで dayTextField.text は、計算したい日数を示すテキストです。(たとえば 125 日) で、finalDate は最終生成日 (2012 年 1 月 1 日から 125 日後の日付) を表示するラベルです。

このコードの利点は、いつでも開始日のパラメーターを変更できることです。たとえば、他の要件については、「1999 年 5 月 31 日」からの日数を数える必要があり、1 行で簡単に変更でき、同じコードが機能します。

コーディングをお楽しみください :)

于 2012-08-01T13:23:38.663 に答える
1
NSCalendar *gregorian =
   [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSUInteger dayOfYear =
   [gregorian ordinalityOfUnit:NSDayCalendarUnit
    inUnit:NSYearCalendarUnit forDate:[NSDate date]];
[gregorian release];
return dayOfYear;

投稿から引用: Objective-C で特定の日付の年間通算日をどのように計算しますか?

于 2012-08-01T13:09:55.607 に答える