Para calcular a diferença entre duas datas ou horários em Java, você pode usar a classe Duration da biblioteca java.time. A classe Duration representa um período de tempo em unidades de segundos e nanossegundos e pode ser usada para calcular a diferença entre duas instâncias de Temporal (como LocalDateTime ou Instant).
Aqui está um exemplo de como calcular a diferença entre duas datas usando a classe Duration:
import java.time.Duration;
import java.time.LocalDate;
public class Main {
public static void main(String[] args) {
// Define duas datas
LocalDate data1 = LocalDate.of(2020, 1, 1);
LocalDate data2 = LocalDate.of(2021, 1, 1);
// Calcula a diferença entre as duas datas
Duration delta = Duration.between(data1, data2);
// Imprime a diferença em dias
System.out.println(delta.toDays()); // Imprime: 365
}
}
Este código cria duas instâncias da classe LocalDate representando as datas 1 de janeiro de 2020 e 1 de janeiro de 2021, respectivamente. Em seguida, usa o método estático between da classe Duration para calcular a diferença entre as duas datas e armazena o resultado em uma variável delta. Por fim, imprime a diferença em dias usando o método toDays.
Você também pode calcular a diferença entre duas horas usando a classe Duration, basta substituir as instâncias de LocalDate por instâncias de LocalTime ou LocalDateTime. Por exemplo:
import java.time.Duration;
import java.time.LocalTime;
public class Main {
public static void main(String[] args) {
// Define duas horas
LocalTime hora1 = LocalTime.of(12, 0);
LocalTime hora2 = LocalTime.of(14, 0);
// Calcula a diferença entre as duas horas
Duration delta = Duration.between(hora1, hora2);
// Imprime a diferença em minutos
System.out.println(delta.toMinutes()); // Im