正しく行う方法がわからない最も単純なタスクがあります。以下のスニペットで、月の始まりを知ることができます。
NSCalendar *cal = [NSCalendar currentCalendar];
NSDate *beginning = nil;
[cal rangeOfUnit:NSMonthCalendarUnit startDate:&beginning interval:NULL forDate:self];
return beginning;
次に、同じ月の終わりを特定したいと思います (23:59:59 の最後の 1 秒が目的に合っています)。私が最初に考えたのは、翌月の 1 日から開始して 1 秒引くことでした。しかし、NSDateComponent インスタンスの日付を に分割することはできませんでした。12[dateComponents setMonth:[dateComponents month] + 1]
月の場合、そのメソッドは 12 + 1 = 13 を受け入れず、1 月に到達できないからです。
では、月の最後の 1 秒に到達するにはどうすればよいでしょうか。