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);
}

代码解释

  1. 输入月份: 程序首先从用户输入月份 m
  2. 计算偏移量: 由于 2015 年 1 月 1 日是星期四,所以 offset 初始化为 1。循环遍历 1 月到 m 月,计算每个月的天数,并对 7 取模,得到该月第一天距离星期日的偏移量。
  3. 打印月历: 输出星期标题,并根据 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 年指定月份的月历功能,并通过合理的代码结构和注释,提高了代码的可读性和可维护性。

C++ 打印2015年指定月份的月历

原文地址: https://www.cveoy.top/t/topic/qu5e 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录