Предмет: Информатика, автор: Amebochka007

В программе «Калькулятор дат» выполните проверку на случаи, когда:
• пользователь ничего не ввел в поле ввода,
• то, что введенное не содержит двух точек
ответным сообщением: «Ошибка ввода. Введите дд.мм.рррр».
Нужно создать условную конструкцию if-else в функции calc()

Програма:

from tkinter import*
import datetime
def calc():
data = ent.get()
some_day, some_month, some_year = map(int, data.split('.'))
birthday = datetime.datetime(some_year, some_month, some_day)
current_date = datetime.datetime.today()
delta_days = (current_date - birthday).days
text_days.config(text=f'Пройшло (delta_days) днів.')
week_day = birthday .isoweekday()
week_dict = {1: 'понеділок',
2: 'вівторок',
3: 'середа',
4: 'четвер',
5: 'п\'ятниця',
6: 'субота',
7: 'неділя',}
week_d.config(text=f'День тижня: {week_dict[week_day]}.')

def clear():
ent.detele(0, END)
text_days.config(text='')
week_d.config(text='')


root = Tk()
root.title('Калькулятор дат')
root.geometry('300x400')
root.resizable(False, False)
root.config(bg='purple')

lbl = Label(root,text='Введіть дату',
font=('Comic Sans MS', 26),
bg='purple', fg='white')
lbl.pack()

ent = Entry(root, width=10, font=('Comic Sans MS', 28),
justify=CENTER, fg='green')
ent.focus_set()
ent.pack()

btn = Button(root, text='Розрахувати',
font=('Comic Sans MS', 26),
fg='purple', command=calc)
btn.pack(pady=10)

text_days = Label(root, text='',
font=('Comic Sans MS', 20, 'italic'),
bg='purple', fg='white')

Ответы

Автор ответа: Informer2
1

from tkinter import *

import datetime

def calc():

data = ent.get()

if not data:

# Пользователь ничего не ввел

error_message = "Ошибка ввода. Введите дд.мм.гггг"

text_days.config(text=error_message)

week_d.config(text="")

return

if data.count('.') != 2:

# Введенное не содержит двух точек

error_message = "Ошибка ввода. Введите дд.мм.гггг"

text_days.config(text=error_message)

week_d.config(text="")

return

try:

some_day, some_month, some_year = map(int, data.split('.'))

birthday = datetime.datetime(some_year, some_month, some_day)

current_date = datetime.datetime.today()

delta_days = (current_date - birthday).days

text_days.config(text=f"Пройшло {delta_days} днів.")

week_day = birthday.isoweekday()

week_dict = {

1: 'понеділок',

2: 'вівторок',

3: 'середа',

4: 'четвер',

5: 'п\'ятниця',

6: 'субота',

7: 'неділя',

}

week_d.config(text=f"День тижня: {week_dict[week_day]}.")

except ValueError:

# Некорректный формат даты

error_message = "Ошибка ввода. Введите дд.мм.гггг"

text_days.config(text=error_message)

week_d.config(text="")

def clear():

ent.delete(0, END)

text_days.config(text="")

week_d.config(text="")

root = Tk()

root.title("Калькулятор дат")

root.geometry("300x400")

root.resizable(False, False)

root.config(bg="purple")

lbl = Label(

root, text="Введіть дату", font=("Comic Sans MS", 26), bg="purple", fg="white"

)

lbl.pack()

ent = Entry(

root,

width=10,

font=("Comic Sans MS", 28),

justify=CENTER,

fg="green"

)

ent.focus_set()

ent.pack()

btn = Button(

root,

text="Розрахувати",

font=("Comic Sans MS", 26),

fg="purple",

command=calc

)

btn.pack(pady=10)

text_days = Label(

root,

text="",

font=("Comic Sans MS", 20, "italic"),

bg="purple",

fg="white"

)

text_days.pack()

week_d = Label(

root,

text="",

font=("Comic Sans MS", 20, "italic"),

bg="purple",

fg="white"

)

week_d.pack()

root.mainloop()

Похожие вопросы
Предмет: География, автор: mikitakravchenko