北大2080、杭电1076关于日期的问题
来源:互联网 发布:进入阿里云服务器 编辑:程序博客网 时间:2024/05/18 03:30
北大第2080题http://poj.org/problem?id=2080
问题大意是,给你一个数(n),然后从2000年1月1日起,输出n天后是哪一年,几月几号,星期几。
#include<stdio.h>int rm[]={31,29,31,30,31,30,31,31,30,31,30,31}; //闰年int pm[]={31,28,31,30,31,30,31,31,30,31,30,31}; //平年int isp(int year){if((year%4==0&&year%100!=0)||year%400==0) return 1; return 0; }int main(){int y,m,n,d,dd,day;while(scanf("%d",&n)!=EOF){if(n==-1)break;y=2000,m=0,day=n;while(n>=(isp(y)?366:365)){n=n-(isp(y)?366:365);y++;}while(n>=(isp(y)?rm[m]:pm[m])){n=n-(isp(y)?rm[m]:pm[m]);m=(m+1)%12;}d=n%(isp(y)?rm[m]:pm[m])+1;m=m+1;printf("%d",y);m<10?printf("-0%d",m):printf("-%d",m);d<10?printf("-0%d",d):printf("-%d",d);dd=day%7;switch(dd){case 0 : printf(" Saturday\n");break;case 1 : printf(" Sunday\n");break;case 2 : printf(" Monday\n");break;case 3 : printf(" Tuesday\n");break;case 4 : printf(" Wednesday\n");break;case 5 : printf(" Thursday\n");break;case 6 : printf(" Friday\n");break;}}return 0;}
杭电上第1076题http://acm.hdu.edu.cn/showproblem.php?pid=1076
问题大意是,给你一个年份(year),和一个数(n),从该year开始,期间经过n过平年后是哪个年份。
#include<stdio.h>int main(){ int year,n,m,y,count; //y:起始年 scanf("%d",&n); while(n--) { count=0; scanf("%d%d",&y,&m); for(year=y;;year++) { if((year%4==0&&year%100!=0)||year%400==0) { count++; } if(m==count){ printf("%d\n",year); break; } } } return 0;}
- 北大2080、杭电1076关于日期的问题
- 北大青鸟的问题
- 关于日期计算的问题
- 关于日期计算的问题
- 关于日期、时间的问题
- 关于杭电1405 The Last Practice 的问题
- 几个常见的关于日期的问题
- 几个常见的关于日期的问题
- 几个常见的关于日期的问题
- 几个常见的关于日期的问题
- 几个常见的关于日期的问题
- 关于从数据库抓日期的问题
- 关于日期查询的一个小问题
- 关于日期格式的转换问题
- 关于oracle日期格式转换的问题
- 关于日期格式化的一个小问题
- 关于字符串转换日期的问题
- SQLite: 关于日期的标准化问题
- Nosql入门知识
- spring中的prototype
- 例题3---1
- Linux开机自动启动程序
- 设计模式学习笔记——里氏替换原则
- 北大2080、杭电1076关于日期的问题
- 可以解决问题insmod: error inserting 'hello.ko': -1 Invalid module format
- GCC使用
- 内核线程ksoftirqd
- 青帮
- 正则表达式快速入门
- 程序员要掌握的技术
- 2012腾讯春季实习生面试经历(二)
- StringTokenizer的用法及示例