Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3188771
А
Аноним
10 мая 2025 18:54 · публичный вопрос
А
Аноним

Необходимо написать программу, которая будет проверять свежесть продукта по его штрих-коду. Со 2-ой по 7-ю цифры кода означают месяц и год производства. 101202245 509202235…

Запрос пользователя

Необходимо написать программу, которая будет проверять свежесть продукта по его штрих-коду. Со 2-ой по 7-ю цифры кода означают месяц и год производства. 101202245 509202235 105202244 001202309 912202333

Ответ нейросети
10 мая 2025 18:54

Для проверки свежести продукта по его штрих-коду и датам производства, закодированным в цифрах 2-7, нужно понять, как именно там зашифрованы дата производства. Согласно вашему примеру, с 2-й по 7-ю цифры кода указывают месяц и год производства.

Рассмотрим пример:

Код: 101202245
Цифры с 2 по 7: 012022
Это означает:

  • Месяц: 01 (январь)
  • Год: 2022

Аналогично для других кодов:

  • 509202235 → 092022 (сентябрь 2022)
  • 105202244 → 052024 (май 2024)
  • 001202309 → 012023 (январь 2023)
  • 912202333 → 122023 (декабрь 2023)

Для автоматической проверки свежести продукта, нужно сравнить дату производства с текущей датой. Например, считать свежим продукт, если его срок годности — не более 6 месяцев с даты производства.


Пошаговая программа на Python, которая определит свежесть:

from datetime import datetime, timedelta

def parse_manufacture_date(code):
    # Извлекаем месяц и год из 2-й по 7-ю цифры
    date_str = code[1:7]
    month = int(date_str[:2])
    year = int(date_str[2:])
    return year, month

def is_product_fresh(code, max_months=6):
    year, month = parse_manufacture_date(code)
    manufacture_date = datetime(year, month, 1)
    current_date = datetime.now()

    # Рассчитаем дату окончания срока годности
    expiry_date = manufacture_date + timedelta(days=30*max_months)

    return current_date <= expiry_date

# Проверим указанные коды
codes = [
    "101202245",
    "509202235",
    "105202244",
    "001202309",
    "912202333"
]

for code in codes:
    if is_product_fresh(code):
        print(f"Код: {code} — продукт свежий")
    else:
        print(f"Код: {code} — продукт не свежий")

Объяснение:

  • Мы извлекаем месяц и год производства из штрих-кода.
  • Создаём объект даты производства.
  • Рассчитываем дату окончания срока годности (например, 6 месяцев).
  • Сравниваем с текущей датой, чтобы определить свежесть.

Если нужно изменить срок годности, можно задать другое значение max_months.


Если нужно, я могу объяснить более подробно любой из этапов или помочь адаптировать код под другие условия!