C++ 打印2015年指定月份的月历
C++ 打印2015年指定月份的月历
本程序使用 C++ 语言实现打印 2015 年指定月份的月历。
代码示例
#include <iostream>
#include <string>
using namespace std;
const int dayNum[] = {-1, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int m, offset, i;
int main()
{
cin >> m;
cout << 'S' << ' ' << 'M' << ' ' << 'T' << ' ' << 'W' << ' ' << 'T' << ' ' << 'F' << ' ' << 'S' << endl; /* '\t' 为 TAB 制表符 */
offset = 1; // 2015年1月1日是星期四
for (i = 1; i < m; i++)
offset = (offset + dayNum[i]) % 7;
for (i = 0; i < offset; i++)
cout << '\t';
for (i = 1; i <= dayNum[m]; i++)
{
cout << i;
if (i == dayNum[m] || (offset + i) % 7 == 0)
cout << endl;
else
cout << '\t';
}
return (0);
}
代码解释
- 输入月份: 程序首先从用户输入月份
m。 - 计算偏移量: 由于 2015 年 1 月 1 日是星期四,所以
offset初始化为 1。循环遍历 1 月到m月,计算每个月的天数,并对 7 取模,得到该月第一天距离星期日的偏移量。 - 打印月历: 输出星期标题,并根据
offset调整第一行空格的数量。然后循环遍历该月的每一天,输出日期,并根据周数和日期判断是否换行。
运行结果
例如,输入月份为 1,则输出结果为:
S M T W T F S
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
总结
本程序通过循环和取模运算,实现了打印 2015 年指定月份的月历功能,并通过合理的代码结构和注释,提高了代码的可读性和可维护性。
原文地址: https://www.cveoy.top/t/topic/qu5e 著作权归作者所有。请勿转载和采集!