24:打印月历
时间:2022-05-08
本文章向大家介绍24:打印月历,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
24:打印月历
总时间限制: 1000ms 内存限制: 65536kB描述
给定年月,打印当月的月历表。
输入输入为一行两个整数,第一个整数是年份year(1900 ≤ year ≤ 2099),第二个整数是月份month(1 ≤ month ≤ 12),中间用单个空格隔开。输出输出为月历表。月历表第一行为星期表头,如下所示: Sun Mon Tue Wed Thu Fri Sat 其余各行一次是当月各天的日期,从1日开始到31日(30日或28日)。 日期数字应于星期表头右对齐,即各位数与星期表头相应缩写的最后一个字母对齐。日期中间用空格分隔出空白。样例输入
2006 5
样例输出
Sun Mon Tue Wed Thu Fri Sat
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
提示闰年判断方法:能被4整除但不能被100整除,或者能被400整除。 1900年1月1日是周一。
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=1;
10 string week[8]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
11 int main()
12 {
13 cin>>enyear>>enmonth;
14 bgyear=1900;
15 bgmonth=1;
16 bgday=1;
17 for(int i=1900;i<=enyear;i++)//寻找年数上的差异
18 {
19 if((i%4==0&&i%100!=0)||(i%400==0))
20 {
21 for(int j=1;j<=12;j++)
22 {
23 for(int k=1;k<=rmonth[j];k++)
24 {
25 if(i==enyear&&j==enmonth)
26 {
27 int bj=0;
28 cout<<"Sun Mon Tue Wed Thu Fri Sat"<<endl;
29 for(int i=1;i<=dow;i++)
30 {
31 if(dow==7)break;
32 bj++;
33 for(int i=1;i<=3;i++)
34 cout<<" ";
35 cout<<" ";
36 }//确定第一个数的位置
37 for(int k=1;k<=rmonth[j];k++)
38 {
39 if(k<10)
40 {
41 if(bj!=6&&k!=rmonth[j])
42 cout<<" "<<k<<" ";
43 else
44 {
45 cout<<" "<<k;
46 }
47 bj++;
48 if(bj==7)
49 {
50 cout<<endl;
51 bj=0;
52 }
53 }
54 else
55 {
56 if(bj!=6&&k!=rmonth[j])
57 cout<<" "<<k<<" ";
58 else
59 {
60 cout<<" "<<k;
61 }
62 if(k==rmonth[j])return 0;
63 bj++;
64 if(bj==7)
65 {
66 cout<<endl;
67 bj=0;
68 }
69 }
70 }
71 return 0;
72 }//边界条件
73 dow++;
74 if(dow==8)
75 dow=1;
76
77 }
78
79 }
80 }//闰年
81 else
82 {
83 for(int j=1;j<=12;j++)
84 {
85 for(int k=1;k<=month[j];k++)
86 {
87 if(i==enyear&&j==enmonth)
88 {
89 int bj=0;
90 cout<<"Sun Mon Tue Wed Thu Fri Sat"<<endl;
91 for(int i=0;i<=dow-1;i++)
92 {
93 if(dow==7)break;
94 if(bj==6)break;
95 bj++;
96 for(int i=1;i<=3;i++)
97 cout<<" ";
98 cout<<" ";
99 }//确定第一个数的位置
100 for(int k=1;k<=month[j];k++)
101 {
102 if(k<10)
103 {
104 if(bj!=6&&k!=month[j])
105 cout<<" "<<k<<" ";
106 else
107 {
108 cout<<" "<<k;
109 }
110 bj++;
111 if(bj==7)
112 {
113 cout<<endl;
114 bj=0;
115 }
116 }
117 else
118 {
119 if(bj!=6&&k!=month[j])
120 cout<<" "<<k<<" ";
121 else
122 {
123 cout<<" "<<k;
124 }
125 bj++;
126 if(bj==7)
127 {
128 cout<<endl;
129 bj=0;
130 }
131 if(k==month[j])return 0;
132 }
133 }
134 return 0;
135 }//边界条件
136 dow++;
137 if(dow==8)
138 dow=1;
139 }
140
141
142
143
144 }
145
146 }
147 }
148 }
- 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 数组属性和方法
- 【python-子集】Generalized Abbreviation(广义缩写)
- spring之整合Hibernate
- 【pytorch】改造resnet为全卷积神经网络以适应不同大小的输入
- springmvc之数据的格式化
- 【python-leetcode207-拓扑排序】课程表
- 定时任务最简单的3种实现方法(Java)
- 回顾通用链表(亲测代码示例)
- 【python-leetcode210-拓扑排序】课程表Ⅱ
- Java实现最小生成树算法之Kruskal算法
- 来我们再聊聊 KMP 算法 -- 我懂,你也得懂
- 【pytorch】简单的线性回归
- 简单的并查集的实现
- 【python-leetcode269-拓扑排序】火星字典
- 通俗点聊聊算法 - 排序(3)快速排序,亲测
- springmvc之如何对表单数据进行校验