Top.Mail.Ru
Ответы

Как сделать проверку и учет высокостного года при переводе из дней в дату?

123456789
 function daysToDate(day) {
  const years = Math.floor(day / 365);
  const months = Math.floor((day % 365) / 30);
  const days = day % 30;
  console.log(years, months, days);
}

daysToDate(3000);
 

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

По дате
По Рейтингу
Аватар пользователя
Знаток

day += Math.floor(day / 1460); //Учитывать сколько раз в количестве дней прошло по 1460 дней (4 года) и прибавить к количеству дней
Но такое ощущение что у вас изначально не правильно функция написана сравнения с калькулятором

Аватар пользователя
Оракул

А что отсчет с нулевого года ведется? Это же абстрактные дни в года. Какой нафиг високосный год) это же не даты