Algoritma Yayın: 14 Temmuz 2026 9 dk okuma

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?

Kısa cevap Zeller kongruansı, herhangi bir Gregoryen takvim tarihinin haftanın hangi gününe denk geldiğini bulan matematiksel bir formüldür. Girilen günü, ayı, yüzyıl-içi yılı ve yüzyılı belirli katsayılarla toplayıp 7'ye böler; kalan sayı haftanın gününü doğrudan verir. Formül 1882'de Christian Zeller tarafından yayımlanmıştır ve bugün hâlâ takvim yazılımlarında kullanılır.

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ı

Kısa cevap Gregoryen takvim için standart formül şudur: 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:

Zeller kongruansı — terim terim açıklama
TerimAnlamı
qAyı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
KYü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⌋ − 2JYü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.

"mod 7" neden işe yarıyor? Hafta 7 günden oluştuğu ve takvim yılları 7'ye tam bölünmediği için (365 = 52×7 + 1), herhangi bir tarihe kadar geçen toplam gün sayısının 7'ye bölümünden kalan, doğrudan haftanın gününü verir. Zeller'in formülü bu sayıyı ay/yıl uzunluklarını tek tek saymadan kapalı bir ifadeyle hesaplar.

Adım adım örnek: 29 Ekim 1923

Kısa cevap 29 Ekim 1923 (Cumhuriyet'in İlanı) tarihini formüle uyguladığınızda h=2 çıkar, bu da (0=Cumartesi kabulüyle) Pazartesi gününe karşılık gelir — tarihî kayıtlarla birebir örtüşür.

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:

29 Ekim 1923 için Zeller kongruansı — adım adım hesap
AdımİşlemSonuç
qAyın günü29
mEkim → düzeltme gerekmez10
KYüzyıl-içi yıl (1923 → son iki hane)23
JYü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
Toplam29+28+23+5+4−(2×19) = 89−3851
h = 51 mod 751 = 7×7 + 22 → Pazartesi

Kaynak: HangiGün hesaplama motorunun uyguladığı Zeller kongruansı (Gregoryen versiyon), bkz. referans bölümü.

Benzersiz içgörü Formüldeki −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?

Kısa cevap Formüldeki ⌊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.

Sık sorulan sorular

Zeller algoritması (kongruansı) nedir?
Zeller kongruansı, herhangi bir Gregoryen takvim tarihinin haftanın hangi gününe denk geldiğini bulan kapalı-form bir formüldür. Gün, ay, yüzyıl-içi yıl ve yüzyıl değerlerini belirli katsayılarla toplayıp 7'ye böler; kalan haftanın gününü verir. 1882'de Christian Zeller tarafından yayımlanmıştır.
Zeller formülünde Ocak ve Şubat neden 13. ve 14. ay sayılır?
Formülün ay terimi yalnızca Mart-Aralık örüntüsüne göre türetilmiştir. Ocak-Şubat'ı bir önceki yılın 13-14. ayı saymak, değişken Şubat uzunluğunu takvimin sonuna taşır ve artık yıl düzeltmesini otomatik hale getirir.
Zeller formülünün sonucu nasıl güne çevrilir?
Standart formülde çıkan kalan (h), 0=Cumartesi, 1=Pazar, 2=Pazartesi... şeklinde bir referansla eşleşir. Kaynağa göre 0'ın karşılığı değişebilir; kullandığınız referans noktasını kontrol etmek gerekir.
Zeller kongruansı hangi takvim için geçerlidir?
Hem Gregoryen hem Jülyen için ayrı versiyonları vardır. Bu site Gregoryen versiyonunu, 1582 öncesi tarihler için proleptik olarak uygular.
Zeller kongruansı ile Doomsday kuralı aynı şey mi?
Hayır, farklıdır ama aynı sonucu verirler. Zeller doğrudan bir formüldür; Doomsday ise zihinden hızlı hesap için geliştirilmiş mnemonik bir tekniktir.

İlgili rehberler

Metodoloji & kaynaklar. Bu yazıdaki formül ve örnek, HangiGün'ün hesaplama motorunun uyguladığı Zeller kongruansı (Gregoryen versiyon) ile birebir aynıdır. Kaynaklar: Christian Zeller, "Kalender-Formeln" (1882) ve "Problema duplex Calendarii fundamentale" (1886) · Gregoryen takvim reformu (1582). Son güncelleme: 14 Temmuz 2026. Bilgilendirme amaçlıdır.