cocoa - que - diferencia horaria wikipedia
Calcular la diferencia horaria en Cacao (4)
Tengo dos valores de tiempo en el formato:% H% M% S (EG161500)
Estos valores son enteros basados en texto.
¿Hay una función simple en Cocoa que calcula la diferencia entre estos dos enteros usando una escala de 60 segundos y minutos?
Así que si
time 1 = 161500
time 2 = 171500
timedifference = 003000
Crearía una subclase NSFormatter para analizar los valores de tiempo en ese formato de los datos de entrada (puede poner uno en un campo de texto para convertir automáticamente la entrada del usuario, o usarlo para analizar desde una fuente de datos en el código). Haga que devuelva el número combinado de segundos como NSTimeInterval (el doble representa segundos) envuelto en un NSNumber. A partir de ahí, es fácil restar la diferencia y mostrarla utilizando la misma clase NSFormatter que ha creado. Tanto en el análisis como en la visualización de valores, usted es el responsable de escribir la conversión de código de segundos a horas: minutos: segundos o el formato que desee. También puede convertir estos valores a un NSDate como mencionó mouviciel, si tiene sentido para su aplicación. Solo tenga en cuenta que siempre va a almacenar la diferencia horaria de una fecha de referencia, generalmente el 1 de enero de 1970 (NSDate tiene métodos para hacer esto por usted).
La clase para manipular fechas es NSDate
. El método para obtener intervalos de tiempo es -timeIntervalSinceDate:
El resultado es un valor NSTimeInterval
, que es un double
representa el intervalo en segundos.
Puede crear un objeto NSDate
desde un NSString
con +dateWithString:
siempre que su fecha esté formateada como 2001-03-24 10:45:32 +0600 .
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"HHmmss"];
NSDate *date1 = [dateFormatter dateFromString:@"161500"];
NSDate *date2 = [dateFormatter dateFromString:@"171500"];
NSTimeInterval diff = [date2 timeIntervalSinceDate:date1]; // diff = 3600.0
prueba este código
- (NSTimeInterval)intervalBetweenDate:(NSDate *)dt1 andDate:(NSDate *)dt2 {
NSTimeInterval interval = [dt2 timeIntervalSinceDate:dt1];
NSLog(@"%f",interval);
return interval;
}