Herhangi bir yılın haftanın günü nasıl hesaplanır?

1. Adım

Bilgileri hazırlayın. Algoritmayı yürütmek için bir gün, bir ay ve bir yıl belirtmek gerekir. Bu, üç ile 14 arasındaki ayları listeler, Mart ile başlar ve Şubat ayında sona eriyor. Bu, artık günlerin her zaman yılın sonunda düştüğünü garanti eder, bu da hesaplamaları basitleştirir: eğer ay <3 sonra, ay = ay + 12.

2. Adım

Yüzyıl ve yıl hesaplayın. 1950'ler, bu rakamın yirminci yüzyılı tanıdığı gerçeğine rağmen 19 olmalıdır. Yüzyıl = taban (yıl / 100) = yearSiglo = yıl mod 100.

3. adım

Yüzyılın başladığı haftanın gününü bulun: Hafta içi = taban (yüzyıl / 4) + 5 * yüzyıl. Zeller, yedi numaralı modülün bu hesaplamasının, herhangi bir yüzyılın başladığı haftanın gününü vereceğini belirledi. Temel hesaplama, her dört asırda bir sıçrama günü olmadığı gerçeğini dikkate alır.

4. Adım

Yılın başladığı haftanın gününü hesaplayın: daySweden = weekDay + yearSiglover + base (yearSiglo / 4). Artık yıllar hariç olmak üzere, her yıl bir önceki yılın başladığı haftanın bir sonraki gününe başlamalısınız. Yedinci modülün hesaplaması, yılın ilk gününün haftanın gününü verir.

Adım 5

Ayın başladığı haftanın gününü bulun: weekDay = weekDay + base ((month + 1) * 26) / 10). Bu, Zeller'ın bu hesaplamanın bir ayın hangi haftasının başlayacağını belirleyebildiğini gören algoritmasının kalbi. Bu formülle, her ayın uzunluğunu belirlemek için arama tablolarına olan ihtiyaç ortadan kalkar.

6. Adım

Ayın gününü ekleyin ve tarihin düştüğü haftanın gününü hesaplayın: weekDay = weekDay + daySunday = weekDay mod 7.

7. adım

Tarihi, Uluslararası Standardizasyon Organizasyonu standartlarına dönüştürün: haftanın tarihi; Haftanın günü Pazartesi = 1 ile başlar. Zeller algoritması ile, Cumartesi kullanılır = 0. Dönüştürme için basit modüler aritmetik kullanılır: weekDay = ((weekDay + 5) mod 7) + 1.