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

Python İle İki Tarih Arasındaki Gün Farkını Hesaplama

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ı