Давайте определим, сколько дней осталось до какого-нибудь праздника, например, до ближайшего Женского дня. Проблема здесь в том, что в этом году 8-е марта могло уже быть, а могло еще и не быть.
Если праздника еще не было, то все просто: нужно взять текущую дату, взять дату 8-е марта за текущий год, и найти разность между ними:
let now = new Date();
let date = new Date(now.getFullYear(), 2, 8); // восьмое марта
let diff = date - now;
Если же праздник уже был, то в следующий раз он будет только в следующем году. В таком случае нам нужно брать 8-е марта следующего года, прибавив к текущему году единицу:
let now = new Date();
let date = new Date(now.getFullYear() + 1, 2, 8); // следующий год
let diff = date - now;
Для того, чтобы совместить оба варианта, необходимо выполнить проверку разницы текущий даты и 8-го марта текущего года. Если эта разница больше нуля, то праздник еще будет в текущем году, если равна нулю - праздник сегодня, а если меньше нуля, то праздник уже был и будет в следующем году:
let now = new Date();
let date = new Date(now.getFullYear(), 2, 8); // текущий год
let diff = date - now; // разница
if (diff > 0) {
// еще будет
} else if (diff == 0) {
// сегодня
} else {
// в следующем году
}
Используя приведенный мною код, окончательно решите задачу.
Пусть ваш День Рождения - первое марта. Определите, сколько дней осталось до вашего ближайшего дня рождения.
Пусть теперь День Рождения может быть произвольным и содержится в переменных month и day. Определите, сколько дней осталось до заданного этой датой праздника. Учтите при решении, что есть счастливчики, которые родились 29 февраля. Не забудьте их учесть в вашем решении.