| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:自己写的 + 参考他的In Reply To:Re:实在是 不容易啊 ~ 终于 AC~ Posted by:huanghaoxiang at 2009-10-05 23:04:33 > 谢谢
#include<stdio.h>
char *str[]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
int day2( int month,int day1 )
{
if ( month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12 )
return 31;
else if ( month == 2 )
{
if ( day1 == 366 )
return 29;
else return 28;
}
else return 30;
}
int main()
{
int day;
while ( scanf ( "%d",&day ) )
{
if ( day == -1 )
break;
int w = day;
day++; // 因为从1.1号在一起,如果输入1 是 1.2
int month,week,n,year;
int day1;
year = 2000;
while( day > 366 ) //求年
{
if(( year % 4== 0 && year % 100 !=0 )|| year % 400 == 0)
day-=366;
else day-=365;
year++;
}
int day3;
if ( ( year % 4== 0 && year % 100 !=0 )|| year % 400 == 0 )
day1 = 366;
else day1 = 365;
if ( day1 != 366 ) // 不是闰年的时候
{
if ( day == 366 ) // 如果不是闰年 366 是下一个月 第一天
{
year++;
day -= 365;
}
}
for ( month = 1; month != 13; ++month ) // 一个一个月减
{
day3 = day2( month,day1 );
if ( month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12 )
{
if ( day <= 31 )
break;
}
else if ( month == 2 )
{
if ( day1 == 366 )
{
if ( day <= 29 )
break;
}
else
{
if ( day < 29 )
break;
}
}
else
{
if ( day <= 30 )
break;
}
day -= day3;
}
printf ( "%d-%02d-%02d %s\n",year,month,day,str[(w+6)%7] );
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator