判断一年中黑色星期五(既是13日又是星期五的日期)的个数

#include <stdio.h>
int leap(int y)//判断闰年
{
    if(y%4==0&&y%100==0||y%400==0)    return 1;        
    else return 0;
}
int f(int y)//判断一年天数
{
    int i,s=0;
    for(i=1900;i<y;i++)
    {
        if(leap(i)) s=s+366;
        else s=s+365;    
    }
    return s;
}
int day(int y,int m)//月天数
{
    if(m==1||m==3||m==5||m==7||m==8||m==10||m==12) return 31;
    else if(m==4||m==6||m==9||m==11) return 30;
    else if(leap(y)) return 29;
    else return 28;
}
void main()
{
    int year,i,d,c=0;
    scanf("%d",&year);
    d=f(year)+12;
    for(i=1;i<=12;i++)
    {
        if((d+1)%7==5) c++;
        d=d+day(year,i);
    }
    printf("%d\n",c);
}

 

posted @ 2018-12-04 17:34  勤奋的园  阅读(583)  评论(0编辑  收藏  举报