您的位置:首页 > 其它

FOJ1303——Calendar

2010-11-18 15:54 225 查看
题意:随便给出一个整数,输出其年月日&&星期,从2000年1.1开始算起:

#include<stdio.h>
char *name[] = { "Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday", "Sunday" };
int time1[15]={31,28,31,30,31,30,31,31,30,31,30,31};
int time2[15]={31,29,31,30,31,30,31,31,30,31,30,31};
bool find(int a)
{
if((a%100!=0&&a%4==0)||a%400==0)
return true;
return false;
}
int main(void)
{
int d, m, y, a,n,l,yu,i,n1;
while(scanf("%d",&n)!=EOF)
{
if(n==-1)
break;
n1=n;
y=2000;
while(n>364)
{
if(!find(y))
{n-=365;y++;}
else {
if(n>365){ n-=366;y++;}
else break;
}
}
m=1;d=1;
if(find(y))
{
for(i=0;n-time2[i]>=0;i++)
{
n-=time2[i];
}
m+=i;d+=n;
}
else
{
for(i=0;n-time1[i]>=0;i++)
{
n-=time1[i];
}
m+=i;d+=n;
}
printf("%d-%02d-%02d ",y,m,d);
/*	if (m == 1 || m == 2) { m += 12; y--; }
if ((y < 1752) || (y == 1752 && m < 9) ||(y == 1752 && m == 9 && d < 3))
a = (d + 2*m + 3*(m+1)/5 + y + y/4 +5) % 7;
else
a = (d + 2*m + 3*(m+1)/5 + y + y/4 - y/100 + y/400)%7;
printf("%s/n", name[a]);*///根据年月日计算星期
char week[7][10]={"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
i=(n1%7+6)%7;
puts(week[i]);//根据年计算星期
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: