有什么方法可以使用 NSCalender 获得上个月的同一天?
我使用的日历显示用户 1 个月,例如 iPad 日历,当他们单击我想移至上个月但应选择与以前相同的日期时。
我只想做
[components setMonth:([components month] - 1)];
但是当我从一个有 31 天的月份移动到有 30 天的月份并且选择的日期是第 31 天时,这会产生问题。
我能够找到适用于 android 但不是 iOS 的示例。
任何帮助,将不胜感激
有什么方法可以使用 NSCalender 获得上个月的同一天?
我使用的日历显示用户 1 个月,例如 iPad 日历,当他们单击我想移至上个月但应选择与以前相同的日期时。
我只想做
[components setMonth:([components month] - 1)];
但是当我从一个有 31 天的月份移动到有 30 天的月份并且选择的日期是第 31 天时,这会产生问题。
我能够找到适用于 android 但不是 iOS 的示例。
任何帮助,将不胜感激
似乎没有明显的“正确”答案,也没有“内置”答案。
由于 Chris 的“简单”想法可能会导致日期无效,因此您可能必须处理极端情况。
处理日-月-年的伪代码:
另一个想法:
prevMonthDate = startDate;
Repeat
prevMonthDate = prevMonthDate - 1 day
Until (Month(prevMonthDate) < Month(startDate) Or Year(prevMonthDate) < Year(startDate))
And (Day(prevMonthDate) <= Day(startDate))
这需要使用 NSDate 和 NSDateComponents,查看日期和时间编程指南。