Czy ktoś byłby w stanie powiedzieć w czym leży problem? Program liczy dobrze daty powyżej 2000 roku, ale poniżej już nie :( Nie wiem w czym leży problem.
#include <stdio.h>
#include <stdlib.h>
char *dni_tygodnia[] = {"sobota","niedziela", "poniedzialek", "wtorek", "sroda","czwartek","piatek"};
int dni_mies[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int mies_roku[12];
int d, m, r;
int temp=0, i=0;
int ilosc_dni_w_ostatnim_roku=0, ilosc_lat_przestepnych=0, ilosc_lat_zwyklych=0;
int oblicz_dni_tygodnia()
{
if(r>2000)
temp=(ilosc_lat_przestepnych*2+ilosc_lat_zwyklych+ilosc_dni_w_ostatnim_roku)%7;
else
{
temp=(ilosc_lat_przestepnych*2+ilosc_lat_zwyklych+ilosc_dni_w_ostatnim_roku)%7;
}
}
int main(int argc, char *argv[])
{
printf("Podaj dzien:\n");
scanf("%d", &d);
printf("\nPodaj miesiac:\n");
scanf("%d", &m);
printf("\nPodaj rok:\n");
scanf("%d", &r);
printf("\n\n");
ilosc_dni_w_ostatnim_roku=d;
for(i=0; i<(m-1); i++)
{
ilosc_dni_w_ostatnim_roku+=dni_mies[i];
}
if(r%4==0 && r>2000)
{
if(m<3)
ilosc_dni_w_ostatnim_roku-=1;
}
if(r%4==0 && r<2000)
{
if(m<3)
ilosc_dni_w_ostatnim_roku;
}
if(r<2000)
{
ilosc_lat_przestepnych=(2000-r)/4;
ilosc_lat_zwyklych=r-2000-(ilosc_lat_przestepnych);
}
else
{
ilosc_lat_przestepnych=(r-2000)/4;
ilosc_lat_zwyklych=r-2000-ilosc_lat_przestepnych;
}
temp=oblicz_dni_tygodnia();
printf("Dzien tygodnia dla podanej daty to: %s\n\n", dni_tygodnia[temp]);
system("PAUSE");
return 0;
}