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