| Hjem | Hardware | Netværk | Programmering | software | Fejlfinding | systemer | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringssprog
  • Delphi programmering
  • Java programmering
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl programmering
  • Python Programming
  • Ruby Programming
  • Visual Basics Programmering
  •  
    Computer Viden >> Programmering >> Computer Programmeringssprog >> Content
    Sådan Beregn dag i ugen for ethvert år
    En fælles algoritme til at beregne ugedag en bestemt dato er Zeller algoritme . Algoritmen blev offentliggjort i 1882 og designet til at blive bearbejdet i hånden, men kan let implementeres i software . Zeller algoritme fungerer ved at finde den dag i ugen århundredet begyndte , og derefter bygge derfra ved at tilføje år, måneder og dage . En god forståelse af modulo aritmetik er nødvendig for at forstå, hvordan algoritmen virker, men alle kan implementere den ved at følge anvisningerne . Instruktioner
    1

    Forbered indgangene. Algoritmen forventer en dag , måned og år .

    Zeller algoritme nummererer måneder fra tre til 14 , begyndende med marts og slutter med februar . Dette garanterer, at spring dage altid falder i slutningen af året , hvilket forenkler beregninger.
    P Hvis måned <3 derefter , måned = måned + 12
    2

    Beregn århundrede og den år af århundredet. Den århundrede for 1950 skulle være 19 , selv om det falder i det tyvende århundrede.

    Århundrede = gulv (år /100) yearOfCentury = år mod 100
    3

    Find den dag i ugen, hvor århundredet begyndte .

    dayOfWeek = floor ( tallet /4) + 5 * århundrede

    Zeller fastslået, at denne beregning modulo syv, vil give den dag uge , at enhver given århundrede begyndte . Gulvet Beregningen håndterer det faktum, at hver fjerde århundrede er kort en skuddag .
    4

    Beregn dag i ugen , at året begyndte den .

    DayOfWeek = dayOfWeek + yearOfCentury + floor ( yearOfCentury /4)

    Hvert år begynder på den næste dag i ugen end i det foregående år, bortset fra skudår . Denne beregning , modulo syv, giver ugedagen for den første dag i året .
    5.

    Find ugedag at måneden startede den .

    DayOfWeek = dayOfWeek + floor ( (måned + 1) * 26) /10)
    p Dette er hjertet af Zeller algoritme . Zeller observeret, at denne beregning er i stand til at afgøre, på hvilken dag i ugen for en måned vil starte. Det eliminerer behovet for opslagstabeller at bestemme længden af hver måned .
    6

    Tilsæt dag i måneden og beregne ugedag , hvor dato falder .

    DayOfWeek = dayOfWeek + daydayOfWeek = dayOfWeek mod 7
    7

    Konverter datoen ISO uge opdaterede normer .

    ISO uge dag -of- ugers starter med mandag = 1 . Zeller algoritme anvender lørdag = 0 . Konverteringen bruger simple modulo aritmetik.

    DayOfWeek = (( dayOfWeek + 5) mod 7) + 1

    Forrige :

    næste :
      Relaterede artikler
    ·Sådan Indsæt et billede i MobiPocket 
    ·Grunde til at bruge Prolog 
    ·Sådan: HTML -tekststykke i Beskeder 
    ·Hvordan man kompilerer en SWF i FlashDevelop 
    ·Sådan Valider CSS Pages 
    ·Sådan Beregn storendet heltal 
    ·Sådan læses en Punch Card 
    ·Sådan kontrolleres , om en fil eksisterer Brug VBScrip…
    ·Sådan Load Dll filer 
    ·Computer Programmering Basics 
      Anbefalede Artikler
    ·Sådan bruges dollartegn i en String i PHP 
    ·Hvordan man skriver en RDL rapport 
    ·VBA Sum Funktion 
    ·Sådan opdaterer Joomla! K2 
    ·Hvordan man laver en MIDI-fil i C + + 
    ·Sådan Upload et WP Theme til HostGator cPanel 
    ·Sådan Konverter High Level -kode til Assembly Language…
    ·Sådan Skjul Data i Java 
    ·Sådan deaktiveres en Trusted Handler 
    ·Sådan Luk Word fra en VBA Script 
    Copyright © Computer Viden http://www.computerdk.com