logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak wyznaczyć dzień tygodnia dla podanej daty z uwzględnieniem lat przestępnych?

Łuk_F 09 Cze 2006 13:26 4906 3
REKLAMA
  • #1 2713151
    Łuk_F
    Poziom 17  
    Posty: 257
    Pomógł: 34
    Ocena: 12
    Witam

    Mam problem.

    Mając dany dzień,miesiąc i rok jak obliczyć jaki to jest dzień tygodnia.
    W sposobie należy uwzględnić rok przestępny.
  • REKLAMA
  • REKLAMA
  • #3 2713763
    kordan11
    Poziom 18  
    Posty: 241
    Pomógł: 24
    Ocena: 10
    Znalazłem coś takiego, jest to w c
    (d+=m<3?y--:y-2,23*m/9+d+4+y/4-y/100+y/400)%7
    0 - niedziela; 6-sobota
    d - dzień
    m - miesiąć od 1-12
    y - rok

    A to jest w pascalu
    dzień tygodna = ([23m/9] + d + 4 + y + [z/4] - [z/100] + [z/400] - 2 (if m >= 3) ) mod 7
    
        gdzie
        [ ] oznacza dzielenie bez reszty z zaokrągleniem w dół
        mod - funkcja modulo
        m - numer miesiąca (od stycznia = 1 do grudnia = 12)
        d - numer dnia miesiąca
        z = y - 1 jeśli m < 3,
        z = y w pozostałych przypadkach 

    Wiecej znajdziesz pod hasłem wieczny kalendarz w wikipedii i w google
  • #4 2715704
    Xitami
    Poziom 29  
    Posty: 1130
    Pomógł: 118
    Ocena: 31
    Cytat:
    [ ] oznacza dzielenie bez reszty z zaokrągleniem w dół

    W Pascalu to oczywiście DIV.
    Lecz pamiętajmy, że DIV zaokrągla w kierunku zera. Dla dodatnich danych wychodzi na jedno, ale....
REKLAMA