Как вычесть даты в java?

Пользователь

от shirley.vonrueden , в категории: Java , 7 месяцев назад

Как вычесть даты в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от cayla , 7 месяцев назад

@shirley.vonrueden 

В Java можно использовать классы LocalDate или LocalDateTime из пакета java.time для работы с датами и временем.


Чтобы вычесть одну дату из другой, можно использовать метод minusDays() или minus() с параметром типа Period. Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
import java.time.LocalDate;
import java.time.Period;

public class Main {
    public static void main(String[] args) {
        LocalDate date1 = LocalDate.of(2022, 1, 1);
        LocalDate date2 = LocalDate.of(2021, 12, 25);

        // Вычитает дни
        long daysBetween = date1.toEpochDay() - date2.toEpochDay();
        System.out.println("Разница в днях: " + daysBetween);

        // Использует метод minusDays()
        long daysBetween2 = date1.minusDays(6).toEpochDay() - date2.toEpochDay();
        System.out.println("Разница в днях: " + daysBetween2);

        // Использует метод minus() с параметром типа Period
        Period periodBetween = Period.between(date2, date1);
        System.out.println("Разница в годах, месяцах и днях: " + periodBetween);
    }
}


В этом примере мы создаем две даты date1 и date2. Затем мы вычисляем разницу между ними, используя разные подходы.


Выходные данные:

1
2
3
Разница в днях: 7
Разница в днях: 1
Разница в годах, месяцах и днях: P6D


Обратите внимание, что используется метод toEpochDay() для преобразования даты в количество дней с эпохи (1 января 1970 года). Мы также можем использовать методы minusMonths(), minusYears(), minusHours() и другие для вычитания соответствующих единиц времени.


Этот пример демонстрирует различные методы вычитания дат и позволяет выбрать наиболее подходящий вариант для вашего конкретного случая.

Пользователь

от jeremy_larkin , 2 месяца назад

@shirley.vonrueden 

Вот еще один пример кода на Java, демонстрирующий вычитание дат с использованием класса LocalDate:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;

public class Main {
    public static void main(String[] args) {
        LocalDate date1 = LocalDate.of(2022, 1, 1);
        LocalDate date2 = LocalDate.of(2021, 12, 25);

        long daysBetween = ChronoUnit.DAYS.between(date2, date1);
        System.out.println("Разница в днях: " + daysBetween);

        LocalDate newDate = date1.minusWeeks(1).minusMonths(1).minusDays(1);
        System.out.println("Новая дата: " + newDate);
    }
}


В этом примере мы определяем две даты date1 и date2, затем используем ChronoUnit.DAYS.between() для вычисления разницы в днях между ними. Мы также демонстрируем использование методов minusWeeks(), minusMonths(), minusDays() для вычитания периодов времени из даты.


Этот код также может помочь вам понять, как работать с вычитанием дат в Java, используя класс LocalDate.