【C++】打印日历

在我们的手机或电脑上都有日历,如下图:
这里写图片描述
如上图的样式我们用代码也可实现,在Linux操作系统中就有这样的命令:cal
这里写图片描述

一、代码实现:

1.首先,1990年1月1号是星期一,我们选这一天做标尺。

2.打印指定年份对应的指定月份的日历,我们要先判断这一年是闰年还是平年,然后判断月份,最后求出指定年份的指定月份距1990年1月1号总共多少天。

3.根据总天数确定月份,然后打印这个月的日历。

【test.c】

#include<iostream>
#include<iomanip>
using namespace std;

//1990年1月1号是星期一
int nyear(int year)   //判断是闰年还是平年
{
    if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
        return 366;
    else
        return 365;
}

int nmonth(int y, int m)        //根据年份和月份判断是哪一个月的天数
{
    if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12)
        return 31;
    else if (nyear(y) == 366 && m == 2)
        return 29;
    else if (nyear(y) == 365 && m == 2)
        return 28;
    else
        return 30;
}

int GetDays(int year, int month)  //输入年份和月份确定到1990.1.1总共多少天
{
    int i = 0;
    int sum = 0;
    if (year>1990)
    for (i = 1990; i < year; i++)
        sum += nyear(i);
    if (month>1)
    for (i = 1; i < month; i++)
    {
        sum += nmonth(year, i);
    }

    
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值