Parece que no puedo restar 7 días de la fecha actual. Así es como lo estoy haciendo:
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];
[offsetComponents setDay:-7];
NSDate *sevenDaysAgo = [gregorian dateByAddingComponents:offsetComponents toDate:[NSDate date] options:0];
SevenDaysAgo obtiene el mismo valor que la fecha actual.
Por favor ayuda.
EDITAR: En mi código olvidé reemplazar la variable que obtiene la fecha actual con la correcta. Entonces, el código anterior es funcional.
objective-c
ios
nsdate
Alex Tau
fuente
fuente
[NSDate dateWithTimeIntervalSinceReferenceDate:[NSDate date].timeIntervalSinceReferenceDate - (7*24*60*60)]
- Aunque no maneja los cambios de horario de verano.Respuestas:
use el método dateByAddingTimeInterval:
salida:
Espero eso ayude
fuente
[now dateByAddingDays:-7]
código:
salida:
Y estoy totalmente de acuerdo con JeremyP.
BR.
Eugenio
fuente
Si está ejecutando al menos iOS 8 u OS X 10.9, hay una forma aún más limpia:
O, con Swift 2:
Y con Swift 3 en adelante, se vuelve aún más compacto:
fuente
Swift 3
fuente
Swift 4.2 - Mutar (actualizar) uno mismo
Aquí hay otra forma en que el póster original puede obtener hace una semana si ya tiene una variable de fecha (se actualiza / muta).
Uso
o
fuente
La respuesta de dymv funciona muy bien. Esto lo puedes usar en rápido
Puedes llamar a esto con
Espero que ayude y gracias a dymv
fuente
Swift 4.2 iOS 11.x Solución de Babec , Swift puro
fuente
Extensión de operador Swift:
Uso
fuente
Versión Swift 3.0+ de la respuesta aceptada original
Date (). AddedTimeInterval (-7 * 24 * 60 * 60)
Sin embargo, esto usa solo valores absolutos. Usar respuestas de calendario probablemente sea más adecuado en la mayoría de los casos.
fuente
Swift 3:
Una modificación a la respuesta de Dov.
Uso:
fuente
numberOfDays
opcional y luego se desenvuelve a la fuerza? ¿No debería ser simplemente no opcionalInt
?PARA SWIFT 3.0
aquí está la función, puede reducir días, mes, día en cualquier recuento como, por ejemplo, aquí, he reducido el año de la fecha actual del sistema en 100 años, puede hacerlo por día, mes también simplemente configure el contador y guárdelo en un matriz, puede esta matriz en cualquier lugar luego func currentTime ()
fuente