Pregunta

Tengo un NSDate que representa un tiempo específico. La presentación de esa fecha es hhmmss. Quiero añadir un valor NSInterval (especificado en segundos) para que el valor de tiempo.

Ejemplo:

NSDate =         123000
NSTimeInterval = 3600

Added together = 133000

¿Cuál es la mejor manera de hacer esto?

¿Fue útil?

Solución

¿Has visto la Las fechas y los tiempos de programación Temas para manual de cacao ?

Básicamente lo que necesita para convertir su tiempo en un NSDate. Para convertir una cadena en una fecha utiliza la clase NSDateFormatter o tal vez NSDateComponents si ya conoce las horas, minutos y segundos.

Su NSTimeInterval es sólo un doble (es decir, 3600,0).

A continuación, se utiliza el método de dateByAddingTimeInterval NSDate para añadir el número de segundos a la vez.

NSDate* newDate = [oldDate dateByAddingTimeInterval:3600.0];

A continuación, puede utilizar cualquiera NSDateFormatter o NSDateComponents para obtener el nuevo tiempo de volver a salir.

Otros consejos

addTimeInterval ahora es obsoleto. Trate de usar dateByAddingTimeInterval su lugar.

// This will set the time when your view appears it will also
// set the time if you want to retrieve from it.
-(void)viewDidAppear:(BOOL)animated
{
     //Create todays date
     NSDate *duedate = [NSDate date];
     //Add how ever many days you could write 86400*numbe_of_days days 86400/24 for an hour
     //Then simply reassign the variable or use a different one.
     duedate = [duedate dateByAddingTimeInterval:86400];  //I add one day
     [datePicker setDate:duedate animated:YES]; //Animate yes will show your pickers moving
     [datePicker setMinimumDate:duedate]; //Set minimum date.
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top