我正在嘗試做一些對我而言有點困難的事情。但我相信有人有一些洞察力。NSDate - 一年前,進退兩難
給定一個日期,比如January 17, 2011
,我試圖找出一年前對應這個日期的那一天。所以January 17, 2011
是一個星期一,一年前,這一天下降了January 18, 2010
(星期一)。事實證明,January 18, 2010
是January 17, 2011
之前的354天。我原本以爲只是簡單地減去非閏年的365天和閏年的366天,但如果你在這種情況下這樣做,你會得到January 17, 2010
,這是一個星期天,而不是一個星期一。
所以,在Objective-C與NSDate
和NSCalendar
,我怎麼能實現的功能,例如:
-(NSDate *)logicalOneYearAgo:(NSDate *)from {
}
換句話說,第n個月的第n個「工作日」(其中「工作日」是週一或週二或週三等)
你將不得不更好地確定你的期望是什麼;從2011年1月17日起的一年是2010年1月17日。您是否想要(例如)第n個月的第n個星期一? – 2011-01-18 22:38:43
是,第n個月的第n個「週日」。 – CodeGuy 2011-01-18 23:12:51
本月有五個星期一,而2010年一月只有四個。在這個日期計劃中,2011年1月31日前一年的日期是多少? – Chuck 2011-01-18 23:37:19