ericguti.90
29/04/13, 21:31:35
Hola a todos tengo una duda, estoy haciendo una miniaplicación que dada una fecha posterior a la actual me calcula la diferencia de tiempo. Lo que hago es primero de todo seria esto:
final Calendar c = Calendar.getInstance();
c.set(bundle.getInt("ANO"), bundle.getInt("MES"), bundle.getInt("DIA"), bundle.getInt("HORA"),bundle.getInt("MIN"),0);
con esto lo que hago es hacer un Calendar de la fecha que me dan. luego llamo a la funcion que calcula la diferencia:
void actualizar_hora(Bundle bundle, Calendar c) {
Calendar c1 = Calendar.getInstance();
Calendar aux = Calendar.getInstance();
aux.setTimeInMillis(c.getTimeInMillis() - c1.getTimeInMillis());
ano = aux.get(Calendar.YEAR)-1970;
mes = aux.get(Calendar.MONTH);
dia = aux.get(Calendar.DAY_OF_MONTH)-1;
hora =aux.get(Calendar.HOUR_OF_DAY);
min = aux.get(Calendar.MINUTE);
seg = aux.get(Calendar.SECOND);
}
No se porque al año restandole 1970 funciona perfecto xD (Esa no es la duda que tengo).
La duda que tengo es que cuando lo ejecuto en el emulador de Android en Eclipse funciona perfecto pero si lo pruebo en el dispositivo móvil me sale una hora de mas. Es decir si son las 21:30 y le digo que me calcule la diferencia entre esa hora y las 21:31 en el emulador me sale que me falta un minuto y en el dispositivo móvil me sale que me falta una hora y un minuto :S, he probado varios casos y a todos me sale una hora mas :S alguien sabe el porque?
Muchas gracias de antemano por la ayuda!
final Calendar c = Calendar.getInstance();
c.set(bundle.getInt("ANO"), bundle.getInt("MES"), bundle.getInt("DIA"), bundle.getInt("HORA"),bundle.getInt("MIN"),0);
con esto lo que hago es hacer un Calendar de la fecha que me dan. luego llamo a la funcion que calcula la diferencia:
void actualizar_hora(Bundle bundle, Calendar c) {
Calendar c1 = Calendar.getInstance();
Calendar aux = Calendar.getInstance();
aux.setTimeInMillis(c.getTimeInMillis() - c1.getTimeInMillis());
ano = aux.get(Calendar.YEAR)-1970;
mes = aux.get(Calendar.MONTH);
dia = aux.get(Calendar.DAY_OF_MONTH)-1;
hora =aux.get(Calendar.HOUR_OF_DAY);
min = aux.get(Calendar.MINUTE);
seg = aux.get(Calendar.SECOND);
}
No se porque al año restandole 1970 funciona perfecto xD (Esa no es la duda que tengo).
La duda que tengo es que cuando lo ejecuto en el emulador de Android en Eclipse funciona perfecto pero si lo pruebo en el dispositivo móvil me sale una hora de mas. Es decir si son las 21:30 y le digo que me calcule la diferencia entre esa hora y las 21:31 en el emulador me sale que me falta un minuto y en el dispositivo móvil me sale que me falta una hora y un minuto :S, he probado varios casos y a todos me sale una hora mas :S alguien sabe el porque?
Muchas gracias de antemano por la ayuda!