Количество времени до ближайшей даты на JavaScript

Давайте определим, сколько дней осталось до какого-нибудь праздника, например, до ближайшего Женского дня. Проблема здесь в том, что в этом году 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 февраля. Не забудьте их учесть в вашем решении.