Всё решаемо!

Задача:

Разработайте программу, которая запрашивает у пользователя дату рождения и вычисляет, сколько лет ему исполнилось. JavaScript.

План:

  • Алгоритм решения
  • Код программы
  • Примеры входных данных и ожидаемых результатов
  • Объяснение кода программы
  • Блок-схема

Алгоритм решения:

  1. Импорт модуля readline для взаимодействия с пользователем через консоль.

  2. Создание интерфейса readline для ввода/вывода.

  3. Определение функции calculateAge(birthdate):

    • Получение текущей даты
    • Преобразование введенной даты рождения в объект Date
    • Вычисление разницы в годах между текущей датой и датой рождения
    • Проверка, наступил ли день рождения в текущем году:
      • Если текущий месяц меньше месяца рождения или
      • Если месяцы совпадают, но текущий день меньше дня рождения
    • Уменьшение возраста на 1, если день рождения в этом году еще не наступил
    • Возврат вычисленного возраста
  4. Запрос даты рождения у пользователя через rl.question().

  5. Вызов функции calculateAge() с введенной датой рождения.

  6. Вывод результата (возраста) в консоль.

  7. Закрытие интерфейса readline.

Код программы на языке JavaScript:

Код JavaScript
const readline = require('readline');

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

function calculateAge(birthdate) {
  const today = new Date();
  const birth = new Date(birthdate);
  let age = today.getFullYear() - birth.getFullYear();
  const monthDiff = today.getMonth() - birth.getMonth();
  
  if (monthDiff < 0 || (monthDiff === 0 && today.getDate() < birth.getDate())) {
    age--;
  }
  
  return age;
}

rl.question("Enter your birthdate (YYYY-MM-DD): ", (birthdate) => {
  const age = calculateAge(birthdate);
  console.log(`You are ${age} years old.`);
  rl.close();
});

ИИ поможет Вам:

  • решит любую задачу
  • объяснит код
  • расставит комментарии в коде
  • и т.д
Попробуйте

Примеры входных данных и ожидаемых результатов:

Input: 1990-05-15
Output: You are 33 years old.

Input: 2000-12-31
Output: You are 22 years old.

Input: 1985-07-20
Output: You are 37 years old.

Input: 2010-03-01
Output: You are 13 years old.

Input: 1975-11-30
Output: You are 47 years old.

Объяснение кода программы:

  1. Импорт модуля readline:

    const readline = require('readline');
    Импортируется встроенный модуль Node.js readline для работы с вводом/выводом в консоли.

  2. Создание интерфейса readline:

    const rl = readline.createInterface({
      input: process.stdin,
      output: process.stdout
    });
    Создается интерфейс readline для чтения ввода пользователя и вывода в консоль.

  3. Определение функции calculateAge:

    function calculateAge(birthdate) {
      const today = new Date();
      const birth = new Date(birthdate);
      let age = today.getFullYear() - birth.getFullYear();
      const monthDiff = today.getMonth() - birth.getMonth();
    
      if (monthDiff < 0 || (monthDiff === 0 && today.getDate() < birth.getDate())) {
        age--;
      }
    
      return age;
    }
    Функция вычисляет возраст на основе даты рождения, учитывая текущую дату и корректируя возраст, если день рождения в этом году еще не наступил.

  4. Запрос даты рождения у пользователя:

    rl.question("Enter your birthdate (YYYY-MM-DD): ", (birthdate) => {
      const age = calculateAge(birthdate);
      console.log(`You are ${age} years old.`);
      rl.close();
    });
    Запрашивается дата рождения у пользователя, вычисляется возраст с помощью функции calculateAge, выводится результат и закрывается интерфейс readline.

Блок-схема:

Нажмите на изображение, чтобы увеличить

Блок-схема к задаче: Разработайте программу, которая запрашивает у пользователя дату рождения и вычисляет, сколько лет ему исполнилось.

Личный кабинет

  1. Приоритетная обработка
    Запросы от пользователей личного кабинета обрабатываются в первую очередь
  2. Бонус за регистрацию
    Стартовый бонус на счёт личного кабинета (~20 запросов), без регистрации - 3 запроса
  3. Все передовые нейросети
    В личном кабинете представлен широкий выбор нейросетей (20+).
  4. Генерация реалистичных изображений
    Midjourney 6.0, Stable Diffusion XL, Dall-E 3, Playground v2.5, Flux.1 Schnell, Flux.1 Dev, Flux.1 Pro, Flux.1.1 Pro, Kolors, Recraft v3
  5. Создание музыки
    Нейросеть Suno создает музыку на основе вашего текста
  6. Нет ограничения на количество символов
    Без регистрации вы можете отправить запрос не более 1000 символов
  7. Работа с файлами
    Поддержка всех популярных форматов: pdf, excel, word, powerpoint, odt, c, js, php, py, html, sql, xml, yaml, markdown, txt, json, csv, png, jpeg и другие
Зарегистрироваться
Личный кабинет smartbuddy.ru