Для проверки свежести продукта по его штрих-коду и датам производства, закодированным в цифрах 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.
Если нужно, я могу объяснить более подробно любой из этапов или помочь адаптировать код под другие условия!