LocalTime) diferencia (entre dos tiempos

Naeem Khan:

Tengo un programa de itinerario de vuelo, donde tengo que llegar diferencia entre la salida y la hora de llegada. Consigo estos tiempos especificados como secuencia de los datos. Aquí está mi problema:

import static java.time.temporal.ChronoUnit.MINUTES;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

public class test2 {
public static void main(String[] args) {

    DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("HHmm");
    LocalTime departure = LocalTime.parse("1139", dateFormat);
    LocalTime arrival = LocalTime.parse("1435", dateFormat);
    LocalTime a = LocalTime.parse("0906", dateFormat);
    System.out.println(MINUTES.between(departure, arrival));
    System.out.println(MINUTES.between(arrival, a));
}
}

Salida:

176
-329

La primera vez que devuelve la diferencia 11:39-14:35 bien. Pero la segunda diferencia es sólo 5 horas mientras que debería ser de 19 horas. ¿Cómo puedo solucionar este problema, ¿qué estoy haciendo mal aquí?

Cualquier ayuda sería muy apreciada.

EDIT:. Estoy usando gráficas para almacenar mis datos en un ejemplo de una ruta más corta entre dos aeropuertos es la siguiente:

Route for Edinburgh to Sydney
1 Edinburgh, 1139, TK3245, Istanbul, 1435
2 Istanbul, 0906, TK4557, Singapore, 1937
3 Singapore, 0804, QF1721, Sydney, 1521

Estos son los 3 tramos que nos lleva desde EDI a Syd. El formato de la salida de arriba es (Ciudad, salida Hora, Vuelos, Destinos, Hora de llegada).

ETO:

El número total de minutos en 24 horas es de 1440. Por eso, cuando la diferencia es inferior a cero (pero se necesita una positiva), entonces se debe añadir un día entero para su resultado:

int diff = MINUTES.between(arrival, a);
if (diff < 0) {
    diff += 1440;
}

Usted puede lograr lo mismo usando la siguiente:

int diff = (MINUTES.between(arrival, a) + 1440) % 1440;

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=177586&siteId=1
Recomendado
Clasificación