i want to check leap year in my program but in leap year function it always return false and also every time execute last return statement , even upper return statement is true(example 2008)
GCC with code block in windows 7
int leap (int x)
{
if(x%400==0)return (1);
if(x%100==0)return (0);
if(x%4==0)return (1);
printf("\tend\t");
return (0);
}
int dayfinder(int y, int m)///m for month
{y=y-1; static int mn[]={0,3,3,6,1,4,6,2,5,0,3,5};
int ty=y,//ty= temo y to get in 400 set of year
i=1,ed=0,lp;//ed = cont extra day lp= count store leap year
while(400*i<ty)
y=i*400,i++;
if(ty>=400)
y=ty-y;
if(y>=300)
y-=300,ed+=1;
if(y>=200)
y-=200,ed+=3;
if(y>=100)
y-=100,ed+=5;
lp=y/4;
if(leap(y))ed+=1;
return (y+lp+ed+mn[m-1]+1)%7;
}
int main()
{
int i;
scanf("%d",&i);
i=dayfinder(i,8);
printf("%d",i);
}
Aucun commentaire:
Enregistrer un commentaire