6. Receba 2 horários e exiba a diferença entre eles em segundos. A entrada destes horários pode ocorrer em qualquer ordem.
Dica: transforme os dois horários para segundos.
Código JavaDica: transforme os dois horários para segundos.
//Autor: Thiago Campos
//Data: 05.09.2012
import javax.swing.JOptionPane;
public class Segundos {
//variavel global
public static String[] horaCompleta = new String[2]; //vai receber o horario completo
public static void main(String[] args) { //inicio do main
//variaveis
int resultadoSegundos = 0; //os segundos
int posicao = 0; //vai armazenar a posição onde esta os (dois pontos ':')
String strHoras, srtMinutos, strSegundos;
int[] horarioSeg = new int[2]; //O vetor guarda o total de segundos que retorna
int difSeg = 0, hora, minutos, segundos;
int a = 0; //inicialização do indice do vetor
int repita = 0; //variavel responsavel pelo enlace
do {
try { //validação
repita = 0; //variavel do enlace
//Entrada de dados
a = 0; //Indice do vetor
horaCompleta[a] = JOptionPane.showInputDialog("Informe 1 hora");
posicao = horaCompleta[a].indexOf(":") - 2; //O uso de (-2) é para ver o inicio da hora
horarioSeg[a] = Converte(posicao, a);
//Entrada de dados
a = 1; //Indice do vetor
horaCompleta[a] = JOptionPane.showInputDialog("Informe 2 hora");
horarioSeg[a] = Converte(posicao, a);
//Calculo da diferença entre os segundos
difSeg = Math.abs(horarioSeg[0] - horarioSeg[1]);
//Saida do resultado
JOptionPane.showMessageDialog(null, "A diferença é: " + difSeg + " segundo(s)");
} catch (Exception e) {
repita = 1; //variavel do enlace
JOptionPane.showMessageDialog(null, "Horario digitado no formato errado."
+ "\n Obedeça o seguinte formato: hh:mm:ss");
}
} while (repita == 1);
} //fim do main
/*
* ----------------------------------------------------------------------------
* FUNÇAO PARA CONVERTER HORARIO EM SEGUNDOS
* ----------------------------------------------------------------------------
*/
public static int Converte(int pos, int i) {
//variaveis locais da função
int totalSegundos = 0; //Armazena os segundos
int hora, minutos, segundos;
String strHoras, srtMinutos, strSegundos; //recebe os algarismos correspondentes
//Para calculos da hora em minutos depois em segundos
//O vetor repassar 2 algarismo
strHoras = horaCompleta[i].substring(pos, pos + 2);
srtMinutos = horaCompleta[i].substring(pos + 3, pos + 5);
strSegundos = horaCompleta[i].substring(pos + 6, pos + 8);
//Converte os algarismos em inteiros e transforma-os em segundos
hora = Integer.parseInt(strHoras) * 3600;
minutos = Integer.parseInt(srtMinutos) * 60;
segundos = Integer.parseInt(strSegundos);
//Os resultados em segundos são somados
totalSegundos = hora + minutos + segundos;
return totalSegundos; //Retorno da função
} //fim da função Converte
} //fim da classe
Nenhum comentário:
Postar um comentário