Próbuję zrobić coś, co dla mnie jest nieco trudne. Ale jestem pewien, że ktoś ma pewien wgląd.NSDate - rok temu, dylemat
Biorąc pod uwagę datę, powiedzmy January 17, 2011
, próbuję ustalić dzień, który odpowiada tej dacie rok temu. Tak więc January 17, 2011
jest poniedziałkiem, a rok temu ten dzień padł na January 18, 2010
(również w poniedziałek). Okazuje się, że January 18, 2010
jest 354 dni przed January 17, 2011
. Początkowo sądziłem, że po prostu odejmuję 365 dni w roku wolnym od skoku i 366 dni w roku przestępnym, ale jeśli zrobisz to w tym przypadku, dostaniesz January 17, 2010
, czyli niedzielę, a nie poniedziałek.
Więc w Objective-C z NSDate
i NSCalendar
, jak mogłaby wdrożyć funkcji, takich jak:
-(NSDate *)logicalOneYearAgo:(NSDate *)from {
}
Innymi słowy, n-tej „powszedni” n-tego miesiąca (gdzie „dzień tygodnia” jest Poniedziałek, wtorek, środa itp.)
będziesz musiał zdefiniować lepiej dokładnie jakie są Twoje oczekiwania; rok od 17 stycznia 2011 r. to 17 stycznia 2010 r. Czy chcesz (na przykład) n-tego poniedziałku n-tego miesiąca? –
tak, n-ty "dzień powszedni" n-tego miesiąca. – CodeGuy
Ten miesiąc ma pięć poniedziałków, a styczeń 2010 tylko cztery. Jaka jest data jednego roku przed 31 stycznia 2011 r. W tym schemacie daty? – Chuck