variable restar minutos ingresar horas fecha declarar comparar java android calendar simpledateformat

java - restar - Diferencia en horas de dos objetos de calendario



restar dos horas en java (2)

Tengo dos objetos de Calendar , y quiero comprobar cuál es la diferencia entre ellos, en horas.

Aquí está el primer Calendar

Calendar c1 = Calendar.getInstance();

Y el segundo Calendar

Calendar c2 = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH); c2.setTime(sdf.parse("Sun Feb 22 20:00:00 CET 2015"));

Ahora digamos que c1.getTime() es: Fri Feb 20 20:00:00 CET 2015 y c2.getTime() es Sun Feb 22 20:00:00 CET 2015 .

Entonces, ¿hay algún código que devuelva la diferencia entre el primer y el segundo Calendar en horas? En mi caso debería devolver 48 .


En Java 8 puedes hacer

long hours = ChronoUnit.HOURS.between(c1.toInstant(), c2.toInstant());


Puedes probar lo siguiente:

long seconds = (c2.getTimeInMillis() - c1.getTimeInMillis()) / 1000; int hours = (int) (seconds / 3600);

O usando la clase Period la API de Joda-Time, puede usar el public Period(long startInstant, long endInstant) constructor public Period(long startInstant, long endInstant) y recuperar el campo de horas:

Period period = new Period(c1.getTimeInMillis(), c2.getTimeInMillis()); int hours = period.getHours();