Cómo agregar time en la hora actual

Estoy bastante confundido sobre esto.

Quiero agarrar, hora actual, de acuerdo con la condición, quiero agregar el time requerido, a la hora actual. por ejemplo.

current time = 06:47:10 //or should i hv to change this format to "2011-03-26 06:47:10 GMT" if(a= 1 and b= min ) { //add 1 min to current time } else if(a= 1 and b= hour) { //add 1 hour to current time } else if(a= 1 and b=week ) { //add 1 week to current time } 

Solo tiene que agregar la salida de la condición anterior a la hora actual.

Por favor, guíame con esto.

Saludos

¿Te refieres a la hora actual, como en este momento?

Si es así, esto lo hará por usted:

 NSDate *now = [NSDate date]; // Grab current time NSDate *newDate = [now addTimeInterval:XXX] // Add XXX seconds to *now 

Donde XXX es el time en segundos.

No debe usar #define kOneDay 86400

En zonas horarias que tienen ahorro de luz diurna, cada año hay un día que solo tiene 82800 segundos y un día que tiene 90000 segundos.
Y a veces incluso hay un día que tiene 86401 segundos. (Pero creo que el segundo salto también es ignorado por NSDateComponents.)

Si quiere hacerlo bien, debe usar NSDateComponents.

para agregar un día lo usas así:

 NSDateComponents *offset = [[[NSDateComponents alloc] init] autorelease]; [offset setDay:1]; NSDate *newDate = [[NSCalendar currentCalendar] dateByAddingComponents:offset toDate:date options:0]; 

es importante usar setDay:1 y no setHour:24 .


para agregar dos semanas y tres horas, usaría esto

 NSDateComponents *offset = [[[NSDateComponents alloc] init] autorelease]; [offset setWeek:2]; [offset setHour:3]; NSDate *newDate = [[NSCalendar currentCalendar] dateByAddingComponents:offset toDate:date options:0]; 

Deberías get la idea. Comienza con la unidad de cambio más grande y desciende hasta el más pequeño.

Sí, es un poco más de trabajo que addTimeInterval: pero addTimeInterval:hours*60*60 es incorrecto si cuidas días, semanas y meses.

 'addTimeInterval:' is deprecated 

Puedes usar esto ahora

 mydate=[NSDate date]; mydate = [mydate dateByAddingTimeInterval:XXX]; //XXX in seconds 

Versión Swift:

 let now = NSDate().timeIntervalSince1970 // current time let timeAfterXInterval = NSDate().dateByAddingTimeInterval(XXX).timeIntervalSince1970 // time after x sec 

XXX es el time en segundo