Witam,
mam problem z moim programem, który na podstawie daty podaje, jaki dzień tygodnia przypada na tą datę. Funkcja wypisuje na ekranie dzień tygodnia przypadający na datę, którą podaje się z klawiatury. Bierzemy pod uwagę lata 2000 - 2020. Do wykonania zadania została użyta informacja, że 1 styczeń 2000 wypadł w sobotę.
Program fajnie wypisuje mi dzień tygodnia, ale tylko jak podam 2000 rok, potem już się tylko zawiesza :/
Proszę o pomoc i cenne wskazówki :) Z góry przepraszam, jeśli kod jest nieczytelny :/
Oto program:
#include <stdio.h>
#include <stdlib.h>
char WorkingDay(int Year, int Month, int Day)
{
int i,j,z=12,c=0,k,r=-1;
char* tab[]={"Sobota", "Niedziela", "Poniedzialek", "Wtorek", "Sroda", "Czwartek", "Piatek"};
int tab1[]={31,28,31,30,31,30,31,31,30,31,30,31};
for (i=2000; i<=Year;i++)
{
if((i==2000) || (i==2004) || (i==2008) || (i==2012) || (i==2016) || (i==2020)) tab1[1]=29; else tab1[1]=28;
for (j=1;j<=z;j++)
{
if ((i==Year)&&(j==Month)){ z=Month;}
for (k=1;k<=tab1[c]; k++)
{
r++;
if (j==z){tab1[c]=Day;}
if(r==7) r=0;
}
c++;
}
}
printf("%s",tab[r]);
}
main()
{
int rok,miesiac,dzien;
do
{
printf("podaj rok ");
scanf("%d", &rok);
fflush(stdin);
printf("podaj miesiac ");
scanf("%d", &miesiac);
fflush(stdin);
printf("podaj dzien ");
scanf("%d", &dzien);
fflush(stdin);
} while(2000>rok>2020, miesiac>12);
return WorkingDay(rok, miesiac, dzien);
getchar();
}