Задача №10

Дано дата виробництва йогурта (вводимо рік, місяць, день) та кількість днів придатності. Визначити чи є він придатним на даний момент.


Рішення:

'use strict'

/**
 * @param {Date} productionDate
 * @param {number} freshnessDays
 */
function hasExpired(productionDate, freshnessDays) {
  const expirationDate = structuredClone(productionDate) // we don't want to mutate the passed date
  expirationDate.setDate(expirationDate.getDate() + freshnessDays)
  const nowDate = new Date()

  return expirationDate - nowDate > 0
}

/**
 * @param {SubmitEvent} e
 */
function handleHasExpired(e) {
  e.preventDefault()

  const dateEl = document.querySelector('.js-date')
  const productionDays = new Date(dateEl.value)

  const inputEl = document.querySelector('.js-duration')
  const freshnessDays = Number(inputEl.value)

  const outputEl = document.querySelector('.js-output')

  outputEl.textContent = `Придатний: ${hasExpired(productionDays, freshnessDays) ? 'так' : 'ні'}`
}

const formEl = document.querySelector('.js-form')
formEl?.addEventListener('submit', handleHasExpired)