Datamaskin
  | Hjem | Hardware | Nettverk | Programmering | Software | Feilsøking | Systems | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringsspråk
  • Delphi Programming
  • Java Programming
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl Programming
  • Python Programming
  • Ruby Programming
  • Visual Basics Programming
  •  
    Datamaskin >> Programmering >> Computer Programmeringsspråk >> Content
    Hvordan Beregn Day of the Week for noen år
    En vanlig algoritme for beregning av ukedagen til en bestemt dato er Zeller algoritme . Algoritmen ble publisert i 1882 og designet for å bli jobbet for hånd , men kan lett bli implementert i programvare. Zeller algoritme fungerer ved å finne den dagen i uken århundret startet , for så å bygge derfra ved å legge til år, måneder og dager . En god forståelse av modulo aritmetikk er nødvendig for å forstå hvordan algoritmen virker, men alle kan gjennomføre det ved å følge instruksjonene . Instruksjoner
    en

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

    Zeller algoritme tall månedene fra tre til 14 , og starter med mars og slutter med februar. Dette garanterer at spranget dager alltid faller på slutten av året , noe som forenkler beregninger .
    P Hvis måned < 3 da , måned = måned + 12
    2

    Beregn århundre og år av århundret. Det tallet for 1950 skal være 19 , selv om det faller i det tjuende århundre .

    Århundre = floor ( år /100 ) yearOfCentury = år mod 100
    3

    Finn den dagen i uken der tallet startet .

    dayOfWeek = floor ( århundre /4 ) + 5 * århundre

    Zeller fastslått at denne beregningen , syv modulo , vil gi den dagen den uke at enhver tallet startet . Gulvet beregningen håndterer det faktum at hver fjerde århundre er kort en skuddårsdag .
    4

    Beregn dag i uken at året startet på .

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

    Hvert år begynner på neste dag i uken enn i året før, med unntak av skuddår . Denne beregningen , syv modulo , gir dagen i uken av den første dagen i året .
    5

    Finn den dagen i uken som måneden startet på .

    DayOfWeek = dayOfWeek + etasje ( (måned + 1 ) * 26 ) /10 )
    p Dette er hjertet av Zeller algoritme . Zeller observert at denne beregningen er i stand til å avgjøre på hvilken ukedag en måned vil starte. Det eliminerer behovet for søketabeller å bestemme lengden av hver måned .
    6

    Legg den dagen i måneden og beregne dagen i uken der datoen faller .

    DayOfWeek = dayOfWeek + daydayOfWeek = dayOfWeek mod 7
    7

    konvertere datoen til ISO uken dato standarder .

    ISO uke dag -of- uker starter med mandag = 1 . Zeller algoritme bruker Lørdag = 0 . Konverteringen bruker enkle modulo aritmetikk.

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

    früher :

     Weiter:
      Relatert Artike
    ·Viktigheten av buffere 
    ·Slik konverterer Binary til Byte 
    ·Hvordan finne summen av sifrene i et tosifret tall i Pr…
    ·Hvordan få tillatelse til å åpne Mine filer i Python…
    ·Hvordan sette opp DMZ på SonicWALL 
    ·Hvordan Graf flere datapunkter i MATLAB 
    ·Hvordan bruke Metadata for HTML kode 
    ·Slik konverterer en Lisp program til en ME10 Macro 
    ·Slik installerer CORBA IDL på NetBeans 
    ·Hvordan Slette historie i ASP.NET 
      Anbefalte artikler
    ·Slik installerer XNA for bruk med VBnet 
    ·Hvordan Fell funksjonspekere 
    ·Hvordan å oppdatere siden Etter tre SEC i PHP 
    ·Slik tester for en tom Array Med JavaScript 
    ·Hvilken Computer språket bruker korte ord kjent som Mn…
    ·Tegn Limit of Input Bokser i HTML 
    ·Slik formaterer du en DataGrid Bound felt 
    ·Hvordan lage en 2D Dynamic Array av strenger i Python 
    ·Slik bygger PHP i et bilde 
    ·Slik oppgraderer Visual Studio 
    Copyright ©  Datamaskin  http://www.datamaskin.biz/