Я пытаюсь сделать что-то, что для меня немного сложно. Но я уверен, что у кого-то есть понимание.NSDate - год назад, дилемма
Учитывая дату, скажем January 17, 2011
, я пытаюсь выяснить день, соответствующий этой дате год назад. Итак, January 17, 2011
- понедельник, а год назад этот день упал на January 18, 2010
(понедельник тоже). Оказывается, January 18, 2010
за 354 дней до January 17, 2011
. Первоначально я думал просто просто вычесть 365 дней для не-високосного года и 366 дней в високосный год, но если вы это сделаете, вы получите January 17, 2010
, то есть воскресенье, а не понедельник.
Так, в Objective-C с NSDate
и NSCalendar
, как я мог реализовать такую функцию, как:
-(NSDate *)logicalOneYearAgo:(NSDate *)from {
}
Другими словами, п-й «день недели» на п-й месяц (где «день недели» является Понедельник или вторник или среда и т. Д.)
Вы собираетесь иметь, чтобы лучше определить точно, что ваши ожидания; один год назад с 17 января 2011 года - 17 января 2010 года. Вы хотите (например) в nth Monday of nth month? –
Да, n-й «будний день» n-го месяца. – CodeGuy
В этом месяце пять понедельников, а в январе 2010 года было всего четыре. Какая дата за год до 31 января 2011 года в этой схеме? – Chuck