-1

現在の NSDate から年を計算したい。私の現在の日付が2012年6月14日だとすると、年末後の最後の日付はどうなるでしょうか。(簡単に説明すると、日付が01-01-2012の場合、年末以降は31-12-2012になります)。では、現在の日付から年を計算するにはどうすればよいですか。私のプロジェクトに期待する次の出力:

  1. Next or End year 年末の日付 (2012 年 12 月 31 日など)。
  2. 翌年または月末の月 (最終日月)。
  3. 翌年または終了年 (最終日付年または翌年)。

NSDate 形式である必要があります。私の言いたいことを理解していただければ幸いです。

4

2 に答える 2

3
NSDate *today = [NSDate date]; 
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *comps = [gregorian components:(NSYearCalendarUnit) fromDate:today];

[comps setDay:31]; // last day of year is always the same
[comps setMonth:12];

NSInteger year = [comps year]; // the current year
NSDate *lastDayOfYear = [gregorian dateFromComponents:comps]; // the last day of the year
于 2012-06-13T14:39:00.683 に答える
0

あなたはこれを使うことができます:

NSDate *now = [NSDate date];
NSDateComponents *dc = [[NSDateComponents alloc] init];
[dc setYear:1];
NSDate *targetDateObject = [[NSCalendar currentCalendar] dateByAddingComponents:dc toDate:now options:0];
[dc release];
于 2012-06-13T14:09:29.463 に答える