Python:
import datetime
import tkinter as tk'
#....
def dateset():
datewin = tk.Toplevel()
datewin.title('Установка даты')
datewin.geometry('300x60+300+200')
datewin.resizable(False, False)
datewin.config(bg='grey')
tk.Label(datewin,text='Введите дату окончания учебного года(гггг-мм-дд): ').pack()
dateentry = tk.Entry(datewin,width=13)
dateentry.pack()
#сохранение даты
def agree():
datewin.destroy()
tk.Button(datewin,text='ОК',command=agree).pack()
txt = dateentry.get()
return txt
#...
# Вычисление и вывод
def clicked(text):
end_year = text.split('-')
# исключаем неправильный формат
try:
indexation = datetime.date(int(end_year[0]),int(end_year[1]),int(end_year[2])) # разбиваем список по индексам
except ValueError or UnboundLocalError:
mb.showerror(title='Ошибка!',message='Неправильный формат! Формат должен быть (гггг-мм-дд)')
finally:
today_date = datetime.date.today() # сегодняшняя дата
different = indexation-today_date # вычисляем разницу
time_cut = different.days #оставляем только дни
last_num = time_cut % 10 # смотрим на последнюю цифру
# конфигурация вывода в зависимости от числа
if last_num == 1:
lbl.configure(text = f"Поздравляем! До конца учебного года остался {time_cut} день")
elif 2 <= last_num <= 4:
lbl.configure(text = f"Поздравляем! До конца учебного года осталось {time_cut} дня")
elif 5 <= last_num <= 9 or last_num == 0:
lbl.configure(text = f"Поздравляем! До конца учебного года осталось {time_cut} дней")
#...
btn = tk.Button(win, text = "Вычислить",font='Arial 33',command =lambda: clicked('текст'), background='yellow',activebackground='grey', width=54, height=2)
btn.pack(padx=80,pady=80)
После выполнения этого фрагмента кода при нажатии на кнопку выскакивает либо cannot access local variable 'indexation' where is not....
Либо ValueError: invalid literal for int() with base 10 'текст"
А по задумке дата введенная в новом окне сохранялась бы в переменную в главном окне и при нажатии кнопки считались бы дни.
Есть мысли как это исправить? Нужно отдавать уже завтра желательно. Это почти последний рывок, есть ещё пару вещей, а стопится все на этом(
Операционная система: windows
Python: 3.11