Zeller’in Kongruansı: En Doğrudan ve Matematiksel Olarak Anlaşılır Yöntem
Zeller’in Kongruansı, verilen bir tarihin haftanın hangi gününe denk geldiğini matematiksel bir formülle hesaplayan bir algoritmadır. Bu yöntem, bilgisayar bilimlerinde ve takvim hesaplamalarında sıklıkla kullanılır. Diğer bazı yöntemlere göre daha doğrudan ve anlaşılır bir matematiksel yapıya sahip olması, onu birçok kişi için tercih edilebilir kılmaktadır.
Formül genellikle şu şekilde ifade edilir:
h=(q+⌊513(m+1)⌋+K+⌊4K⌋+⌊4J⌋−2J)(mod7)
Burada:
- h: Haftanın gününü temsil eden sayıdır (0 = Cumartesi, 1 = Pazar, 2 = Pazartesi, …, 6 = Cuma).
- q: Ayın günüdür (1’den 31’e kadar).
- m: Ayın numarasıdır. Burada dikkat edilmesi gereken önemli bir nokta var: Zeller’in Kongruansı’nda Ocak ve Şubat ayları bir önceki yılın 13. ve 14. ayları olarak kabul edilir. Yani, Mart = 3, Nisan = 4, …, Aralık = 12 iken, Ocak = 13 ve Şubat = 14 olarak alınır. Eğer tarih Ocak veya Şubat ise, yıl değerinden 1 çıkarılır.
- Y: Yılın tamamıdır (örneğin, 2023).
- J: Yılın ilk iki hanesidir (yani Y/100, örneğin 2023 için 20).
- K: Yılın son iki hanesidir (yani Y(mod100), örneğin 2023 için 23).
Kıyamet Günü Algoritması (Doomsday Algorithm)
Kıyamet Günü Algoritması, John Horton Conway tarafından geliştirilmiş, belirli bir tarihin haftanın hangi gününe denk geldiğini zihinden hızlıca hesaplamayı amaçlayan bir yöntemdir. Adını, her yıl belirli bir ayda hep aynı güne denk gelen “Kıyamet Günü” (Doomsday) konseptinden alır. Bu algoritmada, her yıl için bir “Kıyamet Günü” bulunur ve bu referans noktasından yola çıkarak istenen tarihin günü hesaplanır.
Algoritmanın temel adımları şunlardır:
- Yüzyıl Kıyamet Günü’nü bulma: Her yüzyılın kendine ait bir “Kıyamet Günü” vardır. Bu günler periyodik olarak tekrar eder.
- 1800’ler için Kıyamet Günü: Cuma (5)
- 1900’ler için Kıyamet Günü: Çarşamba (3)
- 2000’ler için Kıyamet Günü: Salı (2)
- 2100’ler için Kıyamet Günü: Pazar (0) (Pazar = 0, Pazartesi = 1, Salı = 2, Çarşamba = 3, Perşembe = 4, Cuma = 5, Cumartesi = 6)
- Yılın Kıyamet Günü’nü bulma: Yılın Kıyamet Günü, yüzyılın Kıyamet Günü’ne eklenen bazı hesaplamalarla bulunur.
- Yılın son iki hanesini alın (örneğin, 1923 için 23).
- Bu sayıyı 12’ye bölün ve tam kısmını alın (K=⌊Yson_iki/12⌋).
- Kalanı bulun (L=Yson_iki(mod12)).
- Kalanı 4’e bölün ve tam kısmını alın (M=⌊L/4⌋).
- Yılın Kıyamet Günü = (Yüzyıl Kıyamet Günü + K+L+M) (mod7).
- Referans Kıyamet Günleri: Her ayın belirli günleri “Kıyamet Günü” olarak kabul edilir. Bu günler kolayca akılda tutulabilir:
- 4/4, 6/6, 8/8, 10/10, 12/12 (Çift aylar için ayın günü ayın numarasıyla aynıdır)
- 9/5, 11/7 (Tek aylar için 9. ayın 5’i, 11. ayın 7’si – “5/9 ve 7/11” olarak akılda tutulabilir)
- Mart 0 (Mart’ın son günü, yani 3 Mart veya 0 Mart (28/29 Şubat))
- Ocak: Normal yıllarda 3 Ocak, artık yıllarda 4 Ocak.
- Şubat: Normal yıllarda 28 Şubat, artık yıllarda 29 Şubat.
- Temmuz: 11 Temmuz (2011’de 11 Temmuz Pzt, 2022’de 22 Temmuz Cum)
- Sonuç hesaplama: İstenen tarihin günü ile ilgili ayın “Kıyamet Günü” arasındaki farkı bulun ve bu farkı yılın Kıyamet Günü’ne ekleyerek sonucu bulun.
Gauss’un Haftanın Günü Algoritması
Carl Friedrich Gauss’un geliştirdiği Haftanın Günü Algoritması, Zeller’in Kongruansı’na benzer şekilde, belirli bir tarihin haftanın hangi gününe denk geldiğini matematiksel bir formül aracılığıyla hesaplar. Bazı versiyonları Zeller’in formülüne oldukça benzese de, farklı notasyonlar ve bazen hafif farklı modüler aritmetik kullanabilir. Temel mantık, tarihin bileşenlerini (gün, ay, yıl) belirli bir şekilde işleyerek bir nihai modulo 7 değeri elde etmektir.
Gauss’un algoritmalarından biri genellikle şu şekilde ifade edilebilir:
w=(d+⌊2.6m−0.2⌋+y+⌊y/4⌋+⌊c/4⌋−2c)(mod7)
Burada:
- w: Haftanın gününü temsil eden sayıdır (0 = Pazar, 1 = Pazartesi, …, 6 = Cumartesi).
- d: Ayın günüdür (1’den 31’e kadar).
- m: Ayın numarasıdır. Zeller’in Kongruansı’nda olduğu gibi burada da Ocak ve Şubat ayları için özel bir durum vardır. Bu formülde Ocak ve Şubat ayları için yıl bir önceki yıl olarak kabul edilir ve ay numaraları Mart = 3, …, Aralık = 12 iken, Ocak = 13 ve Şubat = 14 olarak alınır.
- y: Yılın son iki hanesidir (örneğin, 1923 için 23).
- c: Yüzyılın ilk iki hanesidir (örneğin, 1923 için 19).
Önemli Not: Gauss’un bu formülü genellikle Zeller’in Kongruansı’na çok benzerdir ve bazı kaynaklarda Zeller’in kendi çalışmalarından esinlenilmiş veya onunla paralel geliştirilmiş varyantlar olarak da gösterilebilir. Kullanılan m ve y tanımları formülü hafifçe değiştirebilir. Bu özel formülasyon, Zeller’in formülüyle aynı mantığı taşır ancak katsayılar ve modüler operasyonlar biraz farklıdır.

Genel olarak, bu tür modüler aritmetik algoritmalarında, kullanılan sabitin (2.6m−0.2 veya 13(m+1)/5) ve yıl bölmelerinin tanımı çok önemlidir. Zeller’in Kongruansı, en yaygın olarak kabul görmüş ve tutarlı sonuçlar veren formülasyonlardan biridir. Gauss’un kendi notlarında farklı takvimlerle ilgili daha karmaşık hesaplamaları da bulunmaktadır. Bu nedenle, literatürde “Gauss’un algoritması” olarak geçen spesifik formülün detaylarına dikkat etmek önemlidir.
Eğer kesinlik aranıyorsa, Zeller’in Kongruansı daha standart ve yaygın olarak doğrulanmış bir yöntemdir.


Yorum bırakın