Python: Tkinter – İki Tarih Arasında Kaç Gün Olduğunu Bulan Program

Python ile kullanıcının girdiği iki tarih arasında kaç gün olduğunu bulan programa ait kodlar aşağıdaki gibidir.
Programda tkinter kütüphanesi kullanarak görselleştirme yapıldı. Ayrıca tarihlerle ilgili işlem yapacağımız için datetime kütüphanesi de kullanıldı.
Python
import tkinter as tk
from datetime import date
def gun_sayisi_hesapla():
try:
# Kullanıcının girdiği tarihleri al
yil1 = int(yil1_giris.get())
ay1 = int(ay1_giris.get())
gun1 = int(gun1_giris.get())
yil2 = int(yil2_giris.get())
ay2 = int(ay2_giris.get())
gun2 = int(gun2_giris.get())
# Tarihleri oluşturma
tarih1 = date(yil1, ay1, gun1)
tarih2 = date(yil2, ay2, gun2)
# Gün farkını hesaplama
fark = abs((tarih2 - tarih1).days)
# Sonucu etiketle göster
sonuc_label.config(text=f"Girilen iki tarih arasındaki gün sayısı: {fark}")
except ValueError:
# Hatalı girişler için hata mesajı
sonuc_label.config(text="Lütfen geçerli bir tarih bilgisi girin.")
# Ana pencereyi oluştur
pencere = tk.Tk()
pencere.title("Gün Sayısı Hesaplayıcı")
# Kenarlarda boşluk oluşturmak için çerçeve
ana_cerceve = tk.Frame(pencere, padx=20, pady=20)
ana_cerceve.pack(fill="both", expand=True)
# Birinci tarih için giriş alanları
tk.Label(ana_cerceve, text="Birinci Tarih:").grid(row=0, column=0, columnspan=3, pady=5)
tk.Label(ana_cerceve, text="Yıl:").grid(row=1, column=0, padx=5, pady=5)
yil1_giris = tk.Entry(ana_cerceve, width=5)
yil1_giris.grid(row=1, column=1, padx=5, pady=5)
tk.Label(ana_cerceve, text="Ay:").grid(row=1, column=2, padx=5, pady=5)
ay1_giris = tk.Entry(ana_cerceve, width=3)
ay1_giris.grid(row=1, column=3, padx=5, pady=5)
tk.Label(ana_cerceve, text="Gün:").grid(row=1, column=4, padx=5, pady=5)
gun1_giris = tk.Entry(ana_cerceve, width=3)
gun1_giris.grid(row=1, column=5, padx=5, pady=5)
# İkinci tarih için giriş alanları
tk.Label(ana_cerceve, text="İkinci Tarih:").grid(row=2, column=0, columnspan=3, pady=5)
tk.Label(ana_cerceve, text="Yıl:").grid(row=3, column=0, padx=5, pady=5)
yil2_giris = tk.Entry(ana_cerceve, width=5)
yil2_giris.grid(row=3, column=1, padx=5, pady=5)
tk.Label(ana_cerceve, text="Ay:").grid(row=3, column=2, padx=5, pady=5)
ay2_giris = tk.Entry(ana_cerceve, width=3)
ay2_giris.grid(row=3, column=3, padx=5, pady=5)
tk.Label(ana_cerceve, text="Gün:").grid(row=3, column=4, padx=5, pady=5)
gun2_giris = tk.Entry(ana_cerceve, width=3)
gun2_giris.grid(row=3, column=5, padx=5, pady=5)
# Hesapla butonu
hesapla_buton = tk.Button(ana_cerceve, text="Hesapla", command=gun_sayisi_hesapla)
hesapla_buton.grid(row=4, column=0, columnspan=6, pady=20)
# Sonuç etiketi
sonuc_label = tk.Label(ana_cerceve, text="", fg="blue")
sonuc_label.grid(row=5, column=0, columnspan=6, pady=10)
# Ana döngüyü başlat
pencere.mainloop()
# Ekran Çıktısı
