使用日期时间检查 Tkinter 中的年龄
Check age in Tkinter using datetime
我是 python 的编程新手,我想创建一个简单的应用程序来根据用户输入计算您的年龄。我正在使用 'datetime' 模块,我在终端中找到了程序 运行 的示例,但我不知道使用 tkinter 将带有按钮的输入框拖到 link 。 This 是我正在使用的代码示例中的 link,我想在 tkinter 中重新创建它。
import tkinter as tk
from datetime import date
def CheckAge():
global result # to return calculation
result = str(entry.get())
today = date.today()
#Convert user input into a date
dob_data = result.split("/")
dobDay = int(dob_data[0])
dobMonth = int(dob_data[1])
dobYear = int(dob_data[2])
dob = date(dobYear,dobMonth,dobDay)
#Calculate number of days lived
numberOfDays = (today - dob).days
#Convert this into whole years to display the age
age = numberOfDays // 365
label=tk.Label(root, "You are "+str(age) +" years old", command=CheckAge)
label.pack()
print("You are " + str(age) + " years old.")
result = 0
root = tk.Tk()
entry = tk.Entry(root)
entry.pack()
button = tk.Button(root, text="Calculate", command=CheckAge)
button.pack()
root.mainloop()
在执行此代码结束时,我收到此错误消息:
dobDay = int(dob_data[0])
ValueError: invalid literal for int() with base 10: ''
如前所述,我是初学者,我正在使用来自在线论坛的多个代码示例。
首先,标签没有命令。其次,您需要为标签添加属性“文本”。因此,这是您的代码的修改版本:
import tkinter as tk
from datetime import date
def CheckAge():
global result # to return calculation
result = str(entry.get())
today = date.today()
#Convert user input into a date
dob_data = result.split("/")
dobDay = int(dob_data[0])
dobMonth = int(dob_data[1])
dobYear = int(dob_data[2])
dob = date(dobYear,dobMonth,dobDay)
#Calculate number of days lived
numberOfDays = (today - dob).days
#Convert this into whole years to display the age
age = numberOfDays // 365
label=tk.Label(root, text="You are "+str(age) +" years old")
label.pack()
print("You are " + str(age) + " years old.")
result = 0
root = tk.Tk()
entry = tk.Entry(root)
entry.pack()
button = tk.Button(root, text="Calculate", command=CheckAge)
button.pack()
root.mainloop()
通过这些小的修改,您应该能够得到您想要的结果。
我是 python 的编程新手,我想创建一个简单的应用程序来根据用户输入计算您的年龄。我正在使用 'datetime' 模块,我在终端中找到了程序 运行 的示例,但我不知道使用 tkinter 将带有按钮的输入框拖到 link 。 This 是我正在使用的代码示例中的 link,我想在 tkinter 中重新创建它。
import tkinter as tk
from datetime import date
def CheckAge():
global result # to return calculation
result = str(entry.get())
today = date.today()
#Convert user input into a date
dob_data = result.split("/")
dobDay = int(dob_data[0])
dobMonth = int(dob_data[1])
dobYear = int(dob_data[2])
dob = date(dobYear,dobMonth,dobDay)
#Calculate number of days lived
numberOfDays = (today - dob).days
#Convert this into whole years to display the age
age = numberOfDays // 365
label=tk.Label(root, "You are "+str(age) +" years old", command=CheckAge)
label.pack()
print("You are " + str(age) + " years old.")
result = 0
root = tk.Tk()
entry = tk.Entry(root)
entry.pack()
button = tk.Button(root, text="Calculate", command=CheckAge)
button.pack()
root.mainloop()
在执行此代码结束时,我收到此错误消息:
dobDay = int(dob_data[0])
ValueError: invalid literal for int() with base 10: ''
如前所述,我是初学者,我正在使用来自在线论坛的多个代码示例。
首先,标签没有命令。其次,您需要为标签添加属性“文本”。因此,这是您的代码的修改版本:
import tkinter as tk
from datetime import date
def CheckAge():
global result # to return calculation
result = str(entry.get())
today = date.today()
#Convert user input into a date
dob_data = result.split("/")
dobDay = int(dob_data[0])
dobMonth = int(dob_data[1])
dobYear = int(dob_data[2])
dob = date(dobYear,dobMonth,dobDay)
#Calculate number of days lived
numberOfDays = (today - dob).days
#Convert this into whole years to display the age
age = numberOfDays // 365
label=tk.Label(root, text="You are "+str(age) +" years old")
label.pack()
print("You are " + str(age) + " years old.")
result = 0
root = tk.Tk()
entry = tk.Entry(root)
entry.pack()
button = tk.Button(root, text="Calculate", command=CheckAge)
button.pack()
root.mainloop()
通过这些小的修改,您应该能够得到您想要的结果。