non-lvalue in assignment w if'ie...

0

Mam do zrobienia programik, który będzie mi wypisywał po wpisaniu dnia miesiącu, miesiąca i roku który to tydzień...
no i podstawową sprawa jest znalezienie roku przestępnego, znalazłem takie coś na wikipedii:
wcześniej mam zadeklarowane ręcznie wszystkie miesiące i ile dni jest w danym miesiącu...

"jest podzielny przez 4, ale nie jest podzielny przez 100 lub jest podzielny przez 400", a więc wydedukowałem takiego if'a:

int d, m, r, w, t; 
int rok;
if ((rok % 4) >= 0 && (rok % 100) != 0 || (rok % 400) = 0){ // co tu jest nie tak?? O_o
              lipiec_dni = 29;                   
               }
               else {
                    lipiec_dni = 28;
               }

ale wyskakuje mi błąd "non-lvalue in assignment" w lini gdzie jest "if..."

wiem, jest na to wzór, żeby obliczyć, ale nie potrafię go rozgryść...

/* podpowiedź 1 dla programisty
d - numer dnia w miesiącu 
m - przekształcony numer miesiąc: 1 - marzec, 2 - kwiecień, 3 - maj, 4 - czerwiec, 5 - lipiec, 6 - sierpień, 7 - wrzesieć, 8 - październik, 9 - listopad, 10 - grudzień, 11 - styczeń, 12- luty
r - liczba reprezentowana przez dwie ostatnie cyfry pełnego wymiaru roku: danego - dla miesięcy od marca do grudnia poprzedniego - dla tycznie i lutego
w -  liczba reprezentowana przez pozostałe (dwie poczatkowe) cyfry numeru roku
t - szukany tydzień
*/
 t=(d + (( 13*m - 1)/5)+r+(r/4)+(w/4)+5*w)%7; // w sumie nie wiem, czy to aby na pewno dobrze zapisane jest... bo tam też były kwadratowe nawiasy...

Proszę o pomoc w jednym, albo drugim sposobie... wszystko jest zadeklarowane do int... ktoś ma jakiś pomysł? :)

1

Problem pierwszy, czemu jest błąd: a temu:

(rok % 400) = 0

Mianowicie powinno być == a nie 0.

0

no dobra, ruszyło, nie zauważyłem tego ;p :) a ktoś ogarnia ten drugi sposób, z tym wzorem na obliczanie tego? spotkał się ktoś kiedyś z takim czymś?

ps. nawet działa poprawnie :D

0

Jak chcesz to pobaw się biblioteką <time.h>, tutaj masz więcej info na ten temat: http://kursy.ddt.pl/?LessonId=109
powodzenia :)

0
(rok % 4) >= 0 

przecież to zawsze będzie spełnione. powinno być chyba >0.

1 użytkowników online, w tym zalogowanych: 0, gości: 1