Boas pessoal! Tenho aqui um codigo feito mas esta errado, eu quero que o programinha faça ler a hora de partida e de chegada de uma viagem e apresenta a duração. A hora de partida, de chegada e a duração são indicados em horas, minutos e segundos. O programa deve verificar se as horas de partida e de chegada são válidas e deve assinalar se a partida é superior à chegada. Do tipo:
partida H M S ? 7 50 25
chegada H M S ? 14 25 12
Duração = 6:34:47
partida H M S ? 7 50 25
chegada H M S ? 14 72 12
Hora de chegada inválida
partida H M S ? 7 50 25
chegada H M S ? 4 25 12
Partida superior à chegada.
partida H M S ? 18 50 20
chegada H M S ? 19 40 20
Duração = 0:30:0
O codigo que tenho e o seguinte :
import java.util.*;
public class Viagem {
public static void main (String [] args) {
Scanner in = new Scanner ( System.in );
int h1, h2, m1, m2, diferenca, s1, s2, diferenca_horas, diferenca_minutos, diferenca_segundos, segundos_partida, segundos_chegada;
System.out.println("Digite o tempo de partida");
System.out.println("Hora. "); h1 = in.nextInt();
System.out.println("Minutos. "); m1 = in.nextInt();
System.out.println("Segundos. "); s1 = in.nextInt();
System.out.println("Digite o tempo de chegada");
System.out.println("Horas."); h2 = in.nextInt();
System.out.println("Minutos. "); m2 = in.nextInt();
System.out.println("Segundos. "); s2 = in.nextInt();
if(h1<24 && h1>=0 && h2<24 && h2>=0 && m1<60 && m1>=0 && m2<60
&& m2>=0 && s1<60 && s1>=0 && s2<60 && s2>=0)
segundos_partida = h1 * 3600 + m1 * 60 + s1;
segundos_chegada = h2 * 3600 + m2 * 60 + s2;
diferenca = segundos_chegada - segundos_partida;
diferenca_horas = diferenca / 3600 ;
diferenca_minutos = (diferenca % 3600) / 60 ;
diferenca_segundos = diferenca % 60 ;
System.out.println("Duracao =" +diferenca_horas + diferenca_minutos + diferenca_segundos);
if(h1>h2 || m1>m2 || s1>s2)
System.out.println("Partida superior a chegada");
else System.out.println("Hora inválida");
}
}