Zeller Algoritması: Tarihten Gün Bulma
Bir tarihe bakıp haftanın hangi gününe denk geldiğini "hesaplamak", takvime bakmadan da mümkündür. Bunu sağlayan araç, 1882'de Alman matematikçi Christian Zeller'in yayımladığı kapalı-form bir formüldür. Bu rehberde formülün her teriminin ne işe yaradığını ve adım adım bir örnek çözümünü inceliyoruz.
Zeller kongruansı nedir?
Formülün gücü şurada: ay uzunluklarını veya artık yılları ayrı ayrı hesaba katmadan, dört sayıyı toplayıp bölme işlemi yaparak sonuca ulaşırsınız. Bu site, Hangi Gün Doğdum aracında bu formülü doğrudan JavaScript ile uygular.
Zeller kongruansı formülünün tam açılımı
h = (q + ⌊13(m+1)/5⌋ + K + ⌊K/4⌋ + ⌊J/4⌋ − 2J) mod 7. Burada q ayın günü, m düzeltilmiş ay numarası (Mart=3 … Ocak=13, Şubat=14), K yüzyıl-içi yıl (yılın son iki hanesi) ve J yüzyıldır (yılın ilk iki hanesi). Sonuç h, 0'dan 6'ya kadar bir değer alır ve haftanın gününe karşılık gelir.
Formülde ⌊ ⌋ "aşağı yuvarlama" (taban fonksiyonu) anlamına gelir; ondalık kısmı atıp tam sayı kısmını alırsınız. mod 7 ise 7'ye bölümden kalanı ifade eder ve her zaman 0-6 arası bir değer üretir.
Formülün her terimi ne işe yarar?
Formül karmaşık görünse de, her terimin somut bir görevi vardır:
| Terim | Anlamı |
|---|---|
| q | Ayın günü (1-31 arası, olduğu gibi kullanılır) |
| ⌊13(m+1)/5⌋ | O aya kadar geçen ayların toplam gün sayısını 7'ye göre kısayoldan hesaplar |
| K | Yüzyıl-içi yıl (örn. 1990 → K=90); her yılın 365 gün olması nedeniyle haftanın günü her yıl kayar |
| ⌊K/4⌋ | Yüzyıl içindeki artık yılların sayısını yaklaşık olarak telafi eder |
| ⌊J/4⌋ − 2J | Yüzyılın kendisinin haftanın günü üzerindeki etkisini (ve 400 yılda bir tekrarlanan Gregoryen düzeltmesini) hesaba katar |
Not: J ve K'nin tanımı farklı kaynaklarda küçük işaret/sabit farklarıyla verilebilir; önemli olan tüm terimlerin birlikte tutarlı kullanılmasıdır.
Adım adım örnek: 29 Ekim 1923
Hesabı adım adım görelim. Ekim, formülde düzeltme gerektirmeyen bir aydır (Ocak-Şubat dışında kalır), bu yüzden m=10, yıl=1923 doğrudan kullanılır:
| Adım | İşlem | Sonuç |
|---|---|---|
| q | Ayın günü | 29 |
| m | Ekim → düzeltme gerekmez | 10 |
| K | Yüzyıl-içi yıl (1923 → son iki hane) | 23 |
| J | Yüzyıl (1923 → ilk iki hane) | 19 |
| ⌊13(m+1)/5⌋ | ⌊13×11/5⌋ = ⌊28,6⌋ | 28 |
| ⌊K/4⌋ | ⌊23/4⌋ = ⌊5,75⌋ | 5 |
| ⌊J/4⌋ | ⌊19/4⌋ = ⌊4,75⌋ | 4 |
| Toplam | 29+28+23+5+4−(2×19) = 89−38 | 51 |
| h = 51 mod 7 | 51 = 7×7 + 2 | 2 → Pazartesi |
Kaynak: HangiGün hesaplama motorunun uyguladığı Zeller kongruansı (Gregoryen versiyon), bkz. referans bölümü.
−2J terimi, ilk bakışta keyfi görünse de aslında Gregoryen takviminin 400 yılda bir kendini tekrarlama özelliğinin izidir: 400 Gregoryen yılı tam 20.871 hafta içerir (kalansız), bu yüzden aynı yüzyıl-içi tarih 400 yıl sonra aynı haftanın gününe döner. Formül bu döngüyü ⌊J/4⌋ − 2J teriminin periyodikliğiyle otomatik yakalar.
Neden Ocak ve Şubat "13. ve 14. ay" sayılır?
⌊13(m+1)/5⌋ terimi, yalnızca Mart'tan Aralık'a kadar olan 10 ayın 30-31 gün örüntüsüne göre türetilmiştir. Ocak ve Şubat'ı bir önceki yılın 13. ve 14. ayı sayarak, değişken uzunluklu Şubat (28 veya 29 gün) takvimin en sonuna taşınır; böylece artık yıl (29 Şubat) düzeltmesi ayrı bir "if" koşuluna gerek kalmadan otomatik olarak doğru sonuç verir.
Somut olarak: 15 Ocak 2026 tarihi formüle girilirken ay=13, yıl=2025 olarak kullanılır (yıldan 1 çıkarılır). Bu küçük dönüşüm, amacın değişken Şubat uzunluğunu takvim yılının "sonuna" itip formülü basitleştirmek olduğunu açıklar.
Formülü elle uygulamak yerine anında sonuç al
Hangi Gün Doğdum aracı, Zeller kongruansını doğrudan uygulayarak herhangi bir tarihin haftanın gününü, ISO hafta numarasını ve yılın kaçıncı günü olduğunu hesaplar.
Herhangi Bir Tarihi Hesapla →Zeller kongruansı vs diğer yöntemler
Zeller kongruansı tek yöntem değildir. Doomsday kuralı (John Conway), her yıl için ezberlenen bir "referans gün" üzerinden zihinden hızlı hesap yapmayı sağlar; Julian gün sayısı ise tarihleri sürekli bir sayaca çevirip farkını almaya dayanır ve gün farkı bulmakta daha kullanışlıdır. Karşılaştırmayı "Herhangi Bir Tarihin Günü Nasıl Hesaplanır?" rehberinde bulabilirsiniz.