Estoy tratando de hacer algo que, para mí, es un poco difícil. Pero estoy seguro de que alguien tiene alguna idea.NSDate - hace un año, dilema
Dada una fecha, digamos January 17, 2011
, estoy tratando de averiguar el día que corresponde a esta fecha hace un año. Así que January 17, 2011
es un lunes, y hace un año, este día cayó en January 18, 2010
(un lunes también). Resulta que January 18, 2010
es 354 días antes de January 17, 2011
. Originalmente pensé simplemente restar 365 días para un año no bisiesto y 366 días para un año bisiesto, pero si lo haces en este caso, obtendrás January 17, 2010
, que es un domingo, no un lunes.
Así, en Objective-C con NSDate
y NSCalendar
, ¿cómo podría implementar una función, tales como:
-(NSDate *)logicalOneYearAgo:(NSDate *)from {
}
En otras palabras, el enésimo "día de la semana" del mes de orden n (donde "día de la semana" es Lunes, martes, miércoles, etc.)
Vas a tener que definir mejor exactamente cuáles son sus expectativas; un año desde el 17 de enero de 2011 es el 17 de enero de 2010. ¿Desea (por ejemplo) el lunes n del mes n? –
sí, el enésimo "día de la semana" del mes n. – CodeGuy
Este mes tiene cinco lunes, mientras que enero de 2010 solo tuvo cuatro. ¿Cuál es la fecha un año antes del 31 de enero de 2011 en este esquema de fecha? – Chuck