Joda-time

Estou tentando utilizar o joda-time fazendo uma diferença simples de hora
porém não estou conseguindo.:
INICIANDO AS HORAS.:

public geral() {
        initComponents();
    
        
        // INICIANDO HORA DE DIFERENÇA
       DateTimeFormatter DATE_FORMAT = DateTimeFormat.forPattern("H:mm");   
       PeriodFormatter PERIOD_FORMAT = new PeriodFormatterBuilder()   
                .printZeroAlways().minimumPrintedDigits(2)   
                .appendHours().appendLiteral(":").appendMinutes()   
                .toFormatter();   

FAZENDO O CALCULO.:

[code]
private void tf_horasaidaFocusLost(java.awt.event.FocusEvent evt) {
while (true) {
String hora2 = in.nextLine();
try {
DateTime dt = DATE_FORMAT.parseDateTime(hora2);
return dt;
}
catch (Exception e)
{
JOptionPane.showMessageDialog(“Hora inválida”);
}
}

DateTime entrada = leHora(tf_horaentrada2.getText());   
DateTime saida = leHora(tf_horasaida.getText());   
PERIOD period = new PERIOD(entrada, saida);   
tf_horatotal.setText(PERIOD_FORMAT.print(period));   
valortotal();

}          [/code]

Olha, não é muita coisa, mas…

        DateTime d1 = new DateTime().plusDays(1).plusHours(5).plusMinutes(50);
        DateTime d2 = new DateTime();
        
        long milisecs = (d1.toDate().getTime() - d2.toDate().getTime());
        long segundos = milisecs /1000;
        long minutos = segundos / 60;
        long horas = minutos / 60;
        long dias = horas / 24;
        
        System.out.println( "segundos: " +  segundos );
        System.out.println( "minutos: " +  minutos );
        System.out.println( "horas: " +  horas );
        System.out.println( "dias: " +  dias );

Não entendi… que cálculo vc quer fazer?

Quer saber quantas horas, minutos e segundos passaram entre os dois tempos?

Algo assim?

[code]LocalTime start = new LocalTime(“10:00:00”);
LocalTime end = new LocalTime(“11:30:00”);
Period period = new Period(start, end);

System.out.println(“Entre as duas datas há: " + period.getDays() + " dias, "
+ period.getHours() + " horas "
+ period.getMinutes() + " minutos.”);
[/code]

Usar getTime() e fazer conta no braço é coisa do Calendar. Esqueça isso.

É a diferença entre dois campos um com o horário inicial e outro com o final.
no formato HH:mm

Não serve isso?

[code]
LocalTime start = new LocalTime(“10:00:00”);
LocalTime end = new LocalTime(“11:30:00”);
Period period = new Period(start, end);

System.out.printf(“Diferença: %02d:%02d”, period.getHours(), period.getMinutes());
System.out.println();[/code]

1 curtida

só que eu gostaria de utilizar com o usuário escrevendo a data
e ele aparecendo em um campo de texto
mal ai mais eh que eu tow começando em java :oops:

Legal :lol:
Hehehehe…

[quote=ViniGodoy]Não serve isso?

[code]
LocalTime start = new LocalTime(“10:00:00”);
LocalTime end = new LocalTime(“11:30:00”);
Period period = new Period(start, end);

System.out.printf(“Diferença: %02d:%02d”, period.getHours(), period.getMinutes());
System.out.println();[/code][/quote]

Gostei do exemplo, de certa forma me ajudou mas, eu tenho um problema.

Imagine a seguinte situação.

Eu quero saber a diferença entre 10:33:44 até 11:56:21

Daí dessa forma não irá me mostrar ~ 1hora e 22 minutos e (não sei quantos) segundos.

Como eu resolveria isso ?