32:日历问题
2018-06-17 23:08:53来源:未知 阅读 ()
32:日历问题
- 查看
- 提交
- 统计
- 提问
- 总时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
-
在我们现在使用的日历中, 闰年被定义为能被4整除的年份,但是能被100整除而不能被400整除的年是例外,它们不是闰年。例如:1700, 1800, 1900 和 2100 不是闰年,而 1600, 2000 和 2400是闰年。 给定从公元2000年1月1日开始逝去的天数,你的任务是给出这一天是哪年哪月哪日星期几。
- 输入
- 输入一行,每行包含一个正整数,表示从2000年1月1日开始逝去的天数。数据保证结果的年份不会超过9999。
- 输出
- 输出一行,该行包含对应的日期和星期几。格式为“YYYY-MM-DD DayOfWeek”, 其中 “DayOfWeek” 必须是下面中的一个: "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" 或 "Saturday“。
- 样例输入
-
1
- 样例输出
-
2000-01-02 Sunday
- 来源
- 2080
-
1 #include<iostream> 2 using namespace std; 3 int bgyear,bgmonth,bgday; 4 int enyear,enmonth,enday; 5 int month[21]={0,31,28,31,30,31,30,31,31,30,31,30,31};//非闰年 6 int rmonth[21]={0,31,29,31,30,31,30,31,31,30,31,30,31};//闰年 7 int flag=1; 8 int tot=0; 9 int dow=6; 10 string week[8]={"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"}; 11 int main() 12 { 13 int n; 14 cin>>n; 15 bgyear=2000; 16 bgmonth=1; 17 bgday=1; 18 for(int i=2000;i<=10000;i++)//寻找年数上的差异 19 { 20 if((i%4==0&&i%100!=0)||(i%400==0)) 21 { 22 for(int j=1;j<=12;j++) 23 { 24 if(i==bgyear&&j<bgmonth) 25 continue;//寻找开始月份 26 for(int k=1;k<=rmonth[j];k++) 27 { 28 if(tot==n) 29 { 30 if(j<10&&k<10) 31 { 32 cout<<i<<"-"<<"0"<<j<<"-"<<"0"<<k<<" "<<week[dow-1]; 33 return 0; 34 } 35 else if(j<10) 36 { 37 cout<<i<<"-"<<"0"<<j<<"-"<<k<<" "<<week[dow-1]; 38 return 0; 39 } 40 else if(k<10) 41 { 42 cout<<i<<"-"<<j<<"-"<<"0"<<k<<" "<<week[dow-1]; 43 return 0; 44 } 45 else 46 { 47 cout<<i<<"-"<<j<<"-"<<k<<" "<<week[dow-1]; 48 return 0; 49 } 50 }//最后一天 51 tot++; 52 dow++; 53 if(dow==8) 54 dow=1; 55 } 56 57 } 58 }//闰年 59 else 60 { 61 62 for(int j=1;j<=12;j++) 63 { 64 for(int k=1;k<=month[j];k++) 65 { 66 if(tot==n) 67 { 68 if(j<10&&k<10) 69 { 70 cout<<i<<"-"<<"0"<<j<<"-"<<"0"<<k<<" "<<week[dow-1]; 71 return 0; 72 } 73 else if(j<10) 74 { 75 cout<<i<<"-"<<"0"<<j<<"-"<<k<<" "<<week[dow-1]; 76 return 0; 77 } 78 else if(k<10) 79 { 80 cout<<i<<"-"<<j<<"-"<<"0"<<k<<" "<<week[dow-1]; 81 return 0; 82 } 83 else 84 { 85 cout<<i<<"-"<<j<<"-"<<k<<" "<<week[dow-1]; 86 return 0; 87 } 88 }//最后一天 89 tot++; 90 dow++; 91 if(dow==8) 92 dow=1; 93 } 94 } 95 }//非闰年 96 } 97 return 0; 98 }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- WDK驱动调试问题点滴 2020-04-21
- 螺旋矩阵问题 2020-04-18
- 用C++实现:完美的代价 2020-04-15
- 用C++实现:FJ的字符串打印 2020-04-04
- 递归函数使用动态数组遇到的问题 2020-03-26
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash