Zellerjeva kongruenca

(Preusmerjeno s strani Računanje dneva v tednu)

Zellerjeva kongruenca je algoritem, ki ga je razvil Christian Zeller, z njim pa lahko izračunamo dan v tednu za kateri koli datum.

Formula uredi

Formula za gregorijanski koledar je

 

za julijanski koledar je

 

kjer je

  • h dan v tednu (0 = sobota, 1 = nedelja, 2 = ponedeljek, ...)
  • q je dan v mesecu
  • m je mesec
  • J je stoletje (pravzaprav  )
  • K je leto v stoletju ( )
  •   celi del števila

Januar in februar se štejeta kot 13. in 14. mesec prejšnjega leta.

V računalništvu je rezultat modula za negativna število negativen, zato je najhitrejša pot do rezultata v razponu 0 - 6 zamenjava - 2 J z + 5 J in - J z + 6 J.

Algoritem uredi

Ta algoritem velja samo za datume gregorijanskega koledarja.

Algoritem Z(y, m, d)
  Vhod: Leto y, mesec m (1 ≤ m ≤ 12) in dan d (1 ≤ d ≤ 31).
  Izhod: Dan v tednu.

  t ← (0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4)
  n ← (nedelja, ponedeljek, torek, sreda, četrtek, petek, sobota)

  if m < 3
    yy - 1

  w ← (y + y/4 - y/100 + y/400 + tm-1 + d) mod 7

  return nw

Glej tudi uredi

Reference uredi

  • Zeller, Christian (1882). »Die Grundaufgaben der Kalenderrechnung auf neue und vereinfachte Weise gelöst«. Württembergische Vierteljahrshefte für Landesgeschichte (v nemščini). V: 313–314. Arhivirano iz prvotnega spletišča dne 11. januarja 2014. Pridobljeno 23. novembra 2007.
  • Zeller, Christian (1883). »Problema duplex Calendarii fundamentale«. Bulletin de la Société Mathématique de France (v latinščini). 11: 59–61.
  • Zeller, Christian (1885). »Kalender-Formeln«. Mathematisch-naturwissenschaftliche Mitteilungen des mathematisch-naturwissenschaftlichen Vereins in Württemberg (v nemščini). 1 (1): 54–58. Arhivirano iz prvotnega spletišča dne 11. januarja 2014. Pridobljeno 23. novembra 2007.
  • Zeller, Christian (1886). »Kalender-Formeln«. Acta Mathematica (v nemščini). 9: 131–136. doi:10.1007/BF02406733. Arhivirano iz prvotnega spletišča dne 11. januarja 2014. Pridobljeno 23. novembra 2007.

Zunanje povezave uredi