Пусть у нас есть две даты в следующем текстовом формате:
let date1 = '2020-12-01';
let date2 = '2019-12-01';
В таком случае можно выполнить сравнение этих дат и узнать, какая из этих дат больше:
console.log(date1 > date2); // выведет true
Каким образом происходит сравнение этих дат? Дело в том, что наши даты представляют собой строки и JavaScript сравнивает их как строки. То есть он сначала сравнивает первые символы двух дат: если они одинаковы, то JavaScript сравнивает вторые символы, и так далее, пока не найдет отличия. Благодаря тому, что в нашем формате даты сначала расположен год, потом месяц, а потом день, и возможно такое сравнение.
Дело в том, что если цифра первого года оказывается больше цифры второго года, значит уже не имеет значения, что там с месяцами и днями - первый год точно больше. Если же годы совпадают, то больше будет та дата, у которой больше месяц. А если и месяцы совпадают, то больше будет та дата, у которой больше день. Ну, а если и дни одинаковы, то и даты равны.
Важно также, чтобы даты были в одном формате. В нашем случае разделителями частей дат являются дефисы. Это, конечно же, не обязательно. Например, можно поставить точки:
let date1 = '2020.12.01';
let date2 = '2019.12.01';
Или вообще убрать разделители:
let date1 = '20201201';
let date2 = '20191201';
Главное, чтобы сравнение было корректным, размещение должно быть следующим: сначала год, потом месяц, потом день.
Напишите код, который сравнит две приведенные ниже даты и выведет сообщение о том, какая из них больше:
let date1 = '2020-11-31';
let date2 = '2020-12-01';
Дата без года
Необязательно сравнивать года. Дата может состоять просто из месяца и дня:
let date1 = '12-01';
let date2 = '11-01';
console.log(date1 > date2);
Напишите код, который сравнит две приведенные ниже даты и выведет сообщение о том, какая из них больше:
let date1 = '09-21';
let date2 = '09-23';
Попадание даты в промежуток
Пусть есть три промежутка: с 1
января
по 8
марта, с 9
марта по 17
июня, с 18
июня по 31
декабря.
Пусть у нас также есть какая-то дата, содержащая
месяц и день. Давайте определим, в какой
промежуток попадает эта дата:
let date = '08-20';
if (date >= '01-01' && date <= '03-08') {
console.log('1 промежуток');
}
if (date >= '03-09' && date <= '06-17') {
console.log('2 промежуток');
}
if (date >= '06-18' && date <= '12-31') {
console.log('3 промежуток');
}
Дана дата, содержащая месяц и день. Определите знак Зодиака, на которую приходится эта дата.