注释:在西方,星期五和数字13都代表着坏运气,两个不幸的个体最后结合成超级不幸的一天。所以,不管哪个月的十三日又恰逢星期五就叫“黑色星期五”
#include
#include
#include "math.h"
int main()
{
int num,i;
int result=0;
int date[50][2]={0};
int a[13]={0,12,43,71,102,132,163,193,224,255,285,316,346};/*非闰年对应的每个月13号到1月1号的天数,以下用到a[0]=0避免麻烦。多加一个数*/
int b[13]={0,12,43,72,103,133,164,194,225,256,286,317,347};/*闰年对应的每个月13号到1月1号的天数,以下用到*/
for(i=1;i<12;i++)
{
printf("input a year:/n");
scanf("%d",&num);
if(num % 4 != 0 || (num % 100 == 0 && num % 400 != 0 ))
{
for(i=1;i<12;i++)
{
if((365*num+(int)(num/4)-(int)(num/100)+(int)(num/400)+a[i])%7==5)/*判断i月的13号是不是星期5*/
{
result++;
date[result-1][0]=i;
date[result-1][1]=13;
}
}
}
else
{
for(i=1;i<12;i++)
{
if((365*num+(int)(num/4)-(int)(num/100)+(int)(num/400)+b[i])%7==5)
{
result++;
date[result-1][0]=i;
date[result-1][1]=13;
}
}
}
}
printf("There are %d Black Fridays in year %d./n",result,num);
printf("There are: /n");
for(i=0;i
printf("%d/%d/%d/n",num,date[i][0],date[i][1]);
getch();
return 1;
}