32:日历问题
时间:2022-05-08
本文章向大家介绍32:日历问题,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
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 }
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android使用Volley实现上传文件功能
- 工作中使用jasmine遇到的一个html element和Component绑定属性失去同步的问题
- Android使用Volley框架定制PostUploadRequest上传文件
- Android实现横向滑动卡片效果
- 在jasmine beforeEach里修改UI元素的一个side effect
- Android实现头像上传功能
- 关于jasmine里debugElement.query和fixture.detectChanges的依赖关系
- 使用python批量转换文件编码为UTF-8的实现
- rxjs operator学习笔记
- python实现将两个文件夹合并至另一个文件夹(制作数据集)
- rxjs里使用from operator从一个generator里生成Observable
- 使用asyncScheduler进行Observable的延迟subscribe
- 解决flask接口返回的内容中文乱码的问题
- Android自定义控件实现带数值和动画的圆形进度条
- rxjs interval和take的混合使用