NSCalender を使用して先月の同日を取得する方法はありますか?
前の月に移動したいが、前と同じ日を選択する必要があります。
やりたいだけ
[components setMonth:([components month] - 1)];
しかし、31日の月から30日の月に移動し、選択した日が31日である場合、これは問題を引き起こします。
Android の例は見つかりましたが、iOS の例は見つかりませんでした。
どんな助けでもいただければ幸いです
NSCalender を使用して先月の同日を取得する方法はありますか?
前の月に移動したいが、前と同じ日を選択する必要があります。
やりたいだけ
[components setMonth:([components month] - 1)];
しかし、31日の月から30日の月に移動し、選択した日が31日である場合、これは問題を引き起こします。
Android の例は見つかりましたが、iOS の例は見つかりませんでした。
どんな助けでもいただければ幸いです
このリンクをチェックしてください。
1 か月足す程度ですが、引き算でも同じことができます。
変化する
[dateComponents setMonth:1];
の中へ
[dateComponents setMonth:-1];
明白な「正しい」答えも「組み込みの」答えもないようです。
クリスの「単純な」アイデアは無効な日付につながる可能性があるため、エッジケースを処理する必要がある場合があります。
日-月-年を処理するための擬似コード:
別のアイデア:
prevMonthDate = startDate;
Repeat
prevMonthDate = prevMonthDate - 1 day
Until (Month(prevMonthDate) < Month(startDate) Or Year(prevMonthDate) < Year(startDate))
And (Day(prevMonthDate) <= Day(startDate))
これには、NSDateおよびNSDateComponentsを操作する必要があります。日付と時刻のプログラミングガイドを確認してください。