Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Количество прожитых дней (https://javascript.ru/forum/misc/81012-kolichestvo-prozhitykh-dnejj.html)

Alena_03 13.09.2020 19:41

Количество прожитых дней
 
Всем привет, снова проблемы. Задание: Вычислить количество прожитых дней по введенному году рождения с клавиатуры
(приблизительно, без учета месяца). Мой код:
var now = Date.now();
var birthday_year = prompt ('Введите год рождения'); // вытаскиваем дату
var diff = now - birthday_year; // получим количество миллисекунд с даты рождения
var days = Math.trunc (diff / (24 * 60 * 60 * 1000)); // округлить
document.write(days);
Считает неверно, допустим входное значение 2003, на выходе должно быть примерно 6177 дней, а выводит 18518, в чём проблема не могу понять, помогите :help:

рони 13.09.2020 19:52

Alena_03,
создайте дату из строки года.

Alena_03 13.09.2020 20:30

рони, спасибо, получилось, верно же?
var now = Date.now();
var birthday_year = prompt ('Введите год рождения'); // вытаскиваем дату
var time = Date.parse(birthday_year);
var diff = now - time; // получим количество миллисекунд с даты рождения
var days = Math.trunc (diff / (24 * 60 * 60 * 1000)); // округлить вниз или вверх по желанию
document.write(days);

рони 13.09.2020 20:40

Цитата:

Сообщение от Alena_03
верно же?

всё зависит от того, какая дата начала отсчёта вам нужна, 1 января или 13 сентября.

Alena_03 13.09.2020 20:46

рони, вообще сегодняшняя, тогда что изменить нужно в коде?

рони 13.09.2020 20:51

Alena_03,
создать дату и установить год

рони 13.09.2020 20:55

Alena_03,
var time = new Date();
 time.setFullYear(birthday_year);

Alena_03 13.09.2020 21:05

рони,
Цитата:

Сообщение от рони (Сообщение 528817)
date.setFullYear(birthday_year);

Хм... так странно, ничего не изменилось, а здесь точно date. должно быть?

Nexus 13.09.2020 21:53

(() => {
    const today = new Date();
    const birthYear= new Date().setFullYear(prompt('Введите год рождения'));

    const diffInMicroseconds = today - birthYear;
    const diffInDays = Math.floor(diffInMicroseconds / (24 * 3600 * 1000));

    alert(diffInDays);
})();

рони 13.09.2020 21:54

Alena_03,
time.setFullYear


Часовой пояс GMT +3, время: 08:39.