Я пытаюсь сделать что-то, что для меня немного сложно. Но я уверен, что у кого-то есть понимание.
Учитывая дату, скажем 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 {
}
Другими словами, n-й «день недели» n-го месяца (где «день недели» - понедельник, вторник или среда и т. Д.)