Bom dia,
Eu não tenho muita afinidade em trabalhar com horas, e preciso de um método que calcule a diferença entre um horário inicial e um horário final, os dois horários estão em campos do tipo JFormattedTextField, eu preciso recuperá-los a partir destes campos formatados e retornar a diferença em um campo JTextField, como formato inteiro.
Exemplo Hora Inicial: 13:00:00
Exemplo Hora Final: 14:00:00
Horas Trabalhadas: 1
O método que eu estou utilizando está retornando sempre o valor “0” nas horas trabalhadas!
Segue código do método e chamada do mesmo:
private void calcularDiferencaHoras(String horaInicial, String horaFinal, JTextField campo){
SimpleDateFormat sdf1 = new SimpleDateFormat(horaInicial);
SimpleDateFormat sdf2 = new SimpleDateFormat(horaFinal);
try {
double horaInic = sdf1.getCalendar().getTimeInMillis();
double horaFim = sdf2.getCalendar().getTimeInMillis();
double diferencaHoras = horaFim - horaInic;
campo.setText(Double.toString(diferencaHoras));
} catch(Exception ex) {
JOptionPane.showMessageDialog(rootPane, "Ocorreu um erro ao calcular as Horas Trabalhadas!", "Atenção", JOptionPane.ERROR_MESSAGE);
campo.setText("");
}
}
Chamada do método:
calcularDiferencaHoras(jFTHoraInicial.getText(), jFTHoraFinal.getText(), jTFHorasTrabalhadas);
Quem puder colaborar desde já agradeço!