Mundo em Python

Converter de 'dd/mm/yyyy' para 'yyyy-mm-dd' ou vice-versa

from tkinter import *
from tkinter import ttk
from datetime import datetime root = Tk() class appconverter():
def __init__(self):
self.root = root
self.janela()
self.frames_da_janela()
self.widgets_frame1()
self.Menus()
root.mainloop() def janela(self):
self.root.title("Converter de 'dd/mm/yyyy' para 'yyyy-mm-dd' ou vice-versa")
self.root.configure(background='#1e3743')
self.root.geometry("500x250")
self.root.resizable(0, 0) def frames_da_janela(self):
self.frame_1 = Frame(self.root, bd=4, bg='#dfe3ee',
highlightbackground='#759fe6',
highlightthickness=2)
self.frame_1.place(relx=0.02, rely=0.02,
relwidth=0.96, relheight=0.96) def widgets_frame1(self):
self.abas = ttk.Notebook(self.frame_1)
self.dd_mm_yyyy_para_yyyy_mm_dd = Frame(self.abas)
self.yyyy_mm_dd_para_dd_mm_yyyy = Frame(self.abas) self.dd_mm_yyyy_para_yyyy_mm_dd.configure(background="#dfe3ee")
self.yyyy_mm_dd_para_dd_mm_yyyy.configure(background="#dfe3ee") self.abas.add(self.dd_mm_yyyy_para_yyyy_mm_dd, text="dd/mm/yyyy para yyyy-mm-dd")
self.abas.add(self.yyyy_mm_dd_para_dd_mm_yyyy, text="yyyy-mm-dd para dd/mm/yyyy")
self.abas.place(relx=0, rely=0, relwidth=0.98, relheight=0.98) # Aba para dd/mm/yyyy para yyyy-mm-dd
self.dd_mm_yyyy = StringVar()
self.lb_dd_mm_yyyy = Label(self.dd_mm_yyyy_para_yyyy_mm_dd, text="dd/mm/yyyy",
bg='#dfe3ee', fg='#107db2', font=("Arial", "15", "bold"))
self.lb_dd_mm_yyyy.place(relx=0.2, rely=0.05)
self.dd_mm_yyyy_entry = Entry(self.dd_mm_yyyy_para_yyyy_mm_dd, textvariable=self.dd_mm_yyyy,
justify='center', font=("Arial", "15", "bold"))
self.dd_mm_yyyy_entry.place(relx=0.57, rely=0.05, relwidth=0.36) # Botão para calcular
self.bt_calcular1 = Button(self.dd_mm_yyyy_para_yyyy_mm_dd, text="Calcular",
bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'),
command=self.butaoclick1)
self.bt_calcular1.place(relx=0.3, rely=0.3, relwidth=0.45, relheight=0.2) # Resultado
self.resultado_yyyy_mm_dd = StringVar()
self.resultado1 = Label(self.dd_mm_yyyy_para_yyyy_mm_dd, textvariable=self.resultado_yyyy_mm_dd,
font=("Arial", "13", "bold"))
self.resultado1.place(relx=0.05, rely=0.8, relwidth=0.9)
self.lb_resultado1 = Label(self.dd_mm_yyyy_para_yyyy_mm_dd, text="yyyy-mm-dd",
font=("Arial", "18", "bold"), bg='#dfe3ee', fg='#107db2')
self.lb_resultado1.place(relx=0.35, rely=0.63, relwidth=0.45) # Aba para yyyy-mm-dd para dd/mm/yyyy
self.yyyy_mm_dd = StringVar()
self.lb_yyyy_mm_dd = Label(self.yyyy_mm_dd_para_dd_mm_yyyy, text="yyyy-mm-dd",
bg='#dfe3ee', fg='#107db2', font=("Arial", "15", "bold"))
self.lb_yyyy_mm_dd.place(relx=0.15, rely=0.15)
self.yyyy_mm_dd_entry = Entry(self.yyyy_mm_dd_para_dd_mm_yyyy, textvariable=self.yyyy_mm_dd,
justify='center', font=("Arial", "13", "bold"))
self.yyyy_mm_dd_entry.place(relx=0.55, rely=0.15, relwidth=0.36) # Botão para calcular
self.bt_calcular2 = Button(self.yyyy_mm_dd_para_dd_mm_yyyy, text="Calcular", bd=2, bg='#107db2',
fg='white', font=('verdana', 12, 'bold'),
command=self.butaoclick2)
self.bt_calcular2.place(relx=0.3, rely=0.38, relwidth=0.45, relheight=0.2) # Resultado
self.resultado_dd_mm_yyyy = StringVar()
self.resultado2 = Label(self.yyyy_mm_dd_para_dd_mm_yyyy, textvariable=self.resultado_dd_mm_yyyy,
font=("Arial", "13", "bold"))
self.resultado2.place(relx=0.05, rely=0.8, relwidth=0.9)
self.lb_resultado2 = Label(self.yyyy_mm_dd_para_dd_mm_yyyy, text="dd/mm/yyyy",
font=("Arial", "18", "bold"), bg='#dfe3ee', fg='#107db2')
self.lb_resultado2.place(relx=0.35, rely=0.63, relwidth=0.45) def butaoclick1(self):
d = self.dd_mm_yyyy.get()
try:
# Convertendo de 'dd/mm/yyyy' para 'yyyy-mm-dd'
data_convertida = datetime.strptime(d, '%d/%m/%Y').strftime('%Y-%m-%d')
self.resultado_yyyy_mm_dd.set(data_convertida)
except ValueError:
self.resultado_yyyy_mm_dd.set("Formato inválido! Use 'dd/mm/yyyy'.") def butaoclick2(self):
d1 = self.yyyy_mm_dd.get()
try:
# Convertendo de 'yyyy-mm-dd' para 'dd/mm/yyyy'
data_convertida = datetime.strptime(d1, '%Y-%m-%d').strftime('%d/%m/%Y')
self.resultado_dd_mm_yyyy.set(data_convertida)
except ValueError:
self.resultado_dd_mm_yyyy.set("Formato inválido! Use 'yyyy-mm-dd'.") def Quit(self):
self.root.destroy() def Menus(self):
menubar = Menu(self.root)
self.root.config(menu=menubar)
filemenu = Menu(menubar)
menubar.add_cascade(label="Opções", menu=filemenu)
filemenu.add_command(label="Sair", command=self.Quit)
appconverter()
0