Обратный отсчёт до определённой даты

Пытаюсь написать метод, который следит, сколько дней осталось до зимы и записывает количество оставшихся дней в переменную. Собственно, в вопрос: как это правильно делается?

Я накидал пример, до которого смог додуматься сам, но он очень кривой и это делается явно не так.

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

public class DataTest {

    // Столько дней осталось до зимы //
    public static int DAYS_LEFT = 115;

    public static void main(String[] args) {
         Calendar calendar = new GregorianCalendar();
         Calendar calendar2 = new GregorianCalendar(2021, Calendar.DECEMBER, 1); // 1 декабря
         Date todayData = calendar.getTime();
         Date winterData = calendar2.getTime();
        while (DAYS_LEFT != 0) {
            if (todayData.getHours() == 18) {
                if (todayData.getDay() == winterData.getDay()) {
                    System.out.println("Зима");
                    break;
                } else {
                    DAYS_LEFT = DAYS_LEFT - 1;
                }
            }
        }
        System.out.println("Зима");
    }
}

Ответы (1 шт):

Автор решения: arthur

Что-то типо этого.

Date date1 = new Date();
Date date2 = new Date(Year.now().getValue(), 12, 1);
int days = Days.daysBetween(date1, date2).getDays();
→ Ссылка