Dator
 |  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> Computer Programspråk >> Content

    Hur man beräknar den veckodag för något år

    En vanlig algoritm för beräkning av veckodag för ett visst datum är Zeller algoritm . Algoritmen publicerades 1882 och syftar till att bearbetas för hand , men kan lätt implementeras i mjukvara . Zeller algoritm fungerar genom att finna den veckodag århundradet började , sedan bygga därifrån genom att lägga år, månader och dagar . En god förståelse för modulo aritmetik är nödvändigt för att förstå hur algoritmen fungerar , men vem som helst kan genomföra det genom att följa instruktionerna . Instruktioner
    1

    Förbered ingångarna . Algoritmen väntar en dag , månad och år .

    Zeller algoritm numrerar månader från tre till 14 , med början mars och slutar med februari. Detta garanterar att hoppa dagar alltid faller i slutet av året , förenkla beräkningar.
    P Om månad < 3 då , month = månad + 12
    2

    Beräkna talet och år av århundradet . Det århundrade för 1950 bör vara 19 , även om det faller under det tjugonde århundradet .

    Talet = floor ( år /100 ) yearOfCentury = år mod 100
    3

    Hitta den dag i veckan då seklet började .

    dayOfWeek = floor ( talet /4 ) + 5 * talet

    Zeller fastställt att denna beräkning modulo sju , kommer att ge dagen för vecka som en given talet började . Golvet Beräkningen hanterar det faktum att var fjärde århundradet är kort en skottdag .
    4

    Beräkna veckodag att året började på .

    DayOfWeek = dayOfWeek + yearOfCentury + golv ( yearOfCentury /4 ) katalog

    Varje år börjar på nästa veckodag än föregående år , med undantag för skottår . Denna beräkning , modulo sju , ger veckodagen för den första dagen på året .
    5

    Hitta veckodag att månaden började på .

    DayOfWeek = dayOfWeek + floor ( (månad + 1 ) * 26 ) /10 ) katalog

    Detta är hjärtat i Zeller algoritm . Zeller konstaterade att denna beräkning kan bestämma på vilken dag i veckan i månaden börjar . Det eliminerar behovet av uppslagstabeller att bestämma längden på varje månad .
    6

    Lägg dagen i månaden och beräkna veckodag då datumet infaller .

    DayOfWeek = dayOfWeek + daydayOfWeek = dayOfWeek mod 7
    7

    Konvertera datum till ISO-standarder vecka Datum .

    ISO vecka datum dag- för - veckors börjar med måndag = 1 . Zeller algoritm använder Lördag = 0 . Omvandlingen använder enkla modulo aritmetik .

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

    Tidigare:

    nästa:
    relaterade artiklar
    ·Konvertera String till Time i SQLite
    ·Hur man byter en karaktär med motsvarande ASCII Code
    ·Hur till Bädda Musikspelare
    ·Entity Framework vs NHibernate
    ·Hur man gör ett spel utan erfarenhet
    ·Hur får användarroller i Forms Authentication
    ·Hur man skapar en klickbar bild Använda HTML Programme…
    ·Skillnader mellan konstruktioner och Klasser
    ·Vad är Python 2.2.3
    ·Hur @ Echo Command i Anteckningar
    Utvalda artiklarna
    ·Hur man avgör Bokstavsordning i Python
    ·Hur man öppnar en URL genom att klicka på Kod Bild VB…
    ·Vikten av dataflödesdiagram
    ·Hur man skickar en virtuell Basic fax
    ·Hur man använder variabler i Access Query
    ·Hur man skriver VB.Net till Anteckningar
    ·Hur får man nya fiender på Game Maker
    ·Hur man utvecklar en drivrutin för DOS
    ·Hur beräkna antal värdar per Subnet
    ·Förklaring av användningen av en Array
    Copyright © Dator Kunskap http://www.dator.xyz