问题 G: 日历问题
来源:互联网 发布:解压软件winrar 编辑:程序博客网 时间:2024/05/08 14:37
题目描述
在我们现在使用的日历中, 闰年被定义为能被4整除的年份,但是能被100整除而不能被400整除的年是例外,它们不是闰年。例如:1700, 1800, 1900 和 2100 不是闰年,而 1600, 2000 和 2400是闰年。 给定从公元2000年1月1日开始逝去的天数,你的任务是给出这一天是哪年哪月哪日星期几。
输入
输入包含若干行,每行包含一个正整数,表示从2000年1月1日开始逝去的天数。输入最后一行是−1, 不必处理。可以假设结果的年份不会超过9999。
输出
对每个测试样例,输出一行,该行包含对应的日期和星期几。格式为“YYYY-MM-DD DayOfWeek”, 其中 “DayOfWeek” 必须是下面中的一个: “Sunday”, “Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday” and “Saturday“。
样例输入
1730
1740
1750
1751
-1
样例输出
2004-09-26 Sunday
2004-10-06 Wednesday
2004-10-16 Saturday
2004-10-17 Sunday
二、 问题分析
定义两个月份数组,分别赋值为平年和闰年的天数。
编写一个判断是否闰年的bool型函数(自行百度什么是闰年)
每次day++,要判断是否大于当前月的天数,如果大于,则month++,月份也要判断是否大于12,若大于则year++;
周末直接%7,定义一个switch即可
则问题就简化为,输入一个数n,然后进入循环,直到n==0时跳出。按题目要求输出即可
三、 算法分析
典型循环问题:
设置好循环继续和退出的条件
不涉及具体算法
AC代码:
#include <iostream>#include<cstdio>#include<cstring>using namespace std;int month1[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};int month2[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};int n;bool isryear(int y){ if((y%4==0&&y%100!=0)||y%400==0) return true; else return false;}string weekday(int d){ int itemp=d%7; switch (itemp){ case 0:{ return "Saturday"; break; } case 1:{ return "Sunday"; break; } case 2:{ return "Monday"; break; } case 3:{ return "Tuesday"; break; } case 4:{ return "Wednesday"; break; } case 5:{ return "Thursday"; break; } case 6:{ return "Friday"; break; } }}int main(){ while(scanf("%d",&n)&&n!=-1){ int year=2000,month=1,day=1;string Weekday; int temp=n; while(temp--){ day++; if(isryear(year)){ if(day>month2[month]){ day=1; month++; if(month>12){ month=1; year++; } } }else{ if(day>month1[month]){ day=1; month++; if(month>12){ month=1; year++; } } } } Weekday=weekday(n); cout<<year<<"-"; if(month<10) cout<<"0"<<month<<"-"; else cout<<month<<"-"; if(day<10) cout<<"0"<<day<<" "<<Weekday<<endl; else cout<<day<<" "<<Weekday<<endl; } return 0;}
- 问题 G: 日历问题
- HNU OJ题库 1006G日历问题
- 日历问题
- 日历问题
- 日历问题
- 日历问题
- 日历问题
- 日历问题
- 日历控件问题
- 日历控件问题求教!
- POJ 2964 日历问题
- struts日历问题 ,总结
- 5.3日历问题
- poj2964 日历问题
- POJ2080日历问题
- 5.3poj2964日历问题
- POJ 2964:日历问题
- android中日历问题
- 面向对象原理之浅析(一)
- 北京科技大学-银行系统设计
- 读The dropout learning algorithm
- 编程实现一个单链表的打印
- RAID浅析
- 问题 G: 日历问题
- 线程同步-文件锁
- 多对一加分页模糊查询
- 易混淆概念(三)指针函数与函数指针
- Linux文件系统编程 系统调用 文件偏移指针测试
- 对阿里云学生主机和腾讯云学生主机的评测
- tftp命令浅析
- 【MySQL】逻辑架构
- 易混淆概念(四)模板函数与函数模板