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