Boa noite a todos, e obrigado a cada que oferecer um tempo para me ajudar na solução. O exercicio que irei listar abaixo resolvi ele no meu computador e ele execulta perfeitamente, mas quando posto ele no URI da erro de Runtime. o que pode ser:
O exercicio:
Pedrinho está organizando um evento em sua Universidade. O evento deverá ser no mês de Abril, iniciando e terminando dentro do mês. O problema é que Pedrinho quer calcular o tempo que o evento vai durar, uma vez que ele sabe quando inicia e quando termina o evento.
Sabendo que o evento pode durar de poucos segundos a vários dias, você deverá ajudar Pedrinho a calcular a duração deste evento.
Entrada
Como entrada, na primeira linha vai haver a descrição “Dia”, seguido de um espaço e o dia do mês no qual o evento vai começar. Na linha seguinte, será informado o momento no qual o evento vai iniciar, no formato hh : mm : ss . Na terceira e quarta linha de entrada haverá outra informação no mesmo formato das duas primeiras linhas, indicando o término do evento.
Saída
Na saída, deve ser apresentada a duração do evento, no seguinte formato:
W dia(s)
X hora(s)
Y minuto(s)
Z segundo(s)
Obs: Considere que o evento do caso de teste para o problema tem duração mínima de 1 minuto.
Abaixo o meu código:
import java.util.Locale;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Locale.setDefault(Locale.US);
Scanner sc = new Scanner(System.in);
int w1, x1, y1, z1;
int w2, x2, y2, z2;
char ponto;
System.out.printf("Dia ");
w1 = sc.nextInt();
x1 = sc.nextInt();
ponto = sc.next().charAt(0);
y1 = sc.nextInt();
ponto = sc.next().charAt(0);
z1 = sc.nextInt();
System.out.printf("Dia ");
w2 = sc.nextInt();
x2 = sc.nextInt();
ponto = sc.next().charAt(0);
y2 = sc.nextInt();
ponto = sc.next().charAt(0);
z2 = sc.nextInt();
int sec1 = w1 * 86400;
int sec2 = ((x1 * 3600) + ( y1 * 60) + z1);
int totalSec1 = sec1 + sec2;
int sec3 = w2 * 86400;
int sec4 = ((x2 * 3600) + ( y2 * 60) + z2);
int totalSec2 = sec3 + sec4;
int segundosTotal = totalSec2 - totalSec1;
int dias = segundosTotal / 86400;
int resto = segundosTotal % 86400;
int horas = resto / 3600;
resto = resto % 3600;
int minutos = resto / 60;
resto = resto % 60;
int segundos = resto;
System.out.println(dias + " dia(s)");
System.out.println(horas + " hora(s)");
System.out.println(minutos + " minuto(s)");
System.out.println(segundos + " segundo(s)");
sc.close();
}
}