ACM PKU 2080 Calendar 日期处理典型题目

http://acm.pku.edu.cn/JudgeOnline/problem?id=2080

巧妙的方法
首先要知道起始日期是星期几
将判断闰年的代码抽象为函数, 便于作为数组索引
Source Code

Problem: 
2080  User: lnmm 
Memory: 64K  Time: 625MS 
Language: C
++  Result: Accepted 

Source Code 
#include
"stdio.h"
char week[7][10]={"Saturday","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday"};
int year[2]={365,366};
int month[2][12]={31,28,31,30,31,30,31,31,30,31,30,31,31,29,31,30,31,30,31,31,30,31,30,31};

int type(int m)
{if((m%4==0&&m%100!=0)||(m%400==0))return 1;else return 0;
}

void main()
{
    
int days,dayofweek;
    
int i=0,j=0;
    
while(scanf("%d",&days)&&days!=-1)
    
{
        dayofweek
=days%7;
        
for(i=2000;days>=year[type(i)];i++)
            days
-=year[type(i)];
        
for(j=0;days>=month[type(i)][j];j++)
            days
-=month[type(i)][j];
        printf(
"%d-%02d-%02d %s\n",i,j+1,days+1,week[dayofweek]);

    }

}

posted on 2007-11-13 17:34 流牛ζ木马 阅读(1231) 评论(2)  编辑 收藏 引用

评论

# re: ACM PKU 2080 Calendar 日期处理典型题目 2008-10-14 14:32 scaneeling

大牛...................
顶.................................  回复  更多评论   

# re: ACM PKU 2080 Calendar 日期处理典型题目 2011-04-24 18:11 to be or not to be

大牛  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2007年9月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

导航

统计

公告

MY Email/MSN :mars1021@163.com QQ : 27402040 流牛ζ木马

常用链接

留言簿(6)

随笔档案

相册

搜索

最新随笔

最新评论

阅读排行榜

评论排行榜