C++入门小案例_015:判断是否为如闰年

闰年

  • 闰年是历法中的名词,分为普通闰年和世纪闰年。

注意闰年(公历中的名词)和闰月(农历中的名词)并没有直接的关联,公历只分闰年和平年,平年有365天,闰年有366天(2月中多一天);平年中也可能有闰月(如2017年是平年,农历有闰月,闰六月)。

基本解释

凡阳历中有闰日(2月29日)的年份,闰余(岁余置闰。阴历每年与回归年相比所差的时日)。

1582年以来的置闰规则:

普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)。

世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)。

1582年以前的惯例:四年一闰;如果公元A年的A(正数)能被4整除,那么它就是闰年;如果公元前B年的B(正数)除以4余1,那么它也是闰年。

产生原因

通常的解释是说一年有多少天多少小时多少分钟,取整数365天后,还有多余的,累积达到一天(24小时)后,就多加一天,多加一天的这一年就是闰年。这个解释只是告诉大家怎么计算,是人为设置的东西。

最根本的原因是:地球绕太阳运行的周期为365天5小时48分46秒(合365.24219天),即一回归年(tropical year)。公历的平年只有365天,比回归年短约0.2422天,所余下的时间约为每四年累积一天,故在第四年的2月末加1天,使当年的时间长度变为366天,这一年就是闰年。现行公历中每400年有97个闰年。按照每四年一个闰年计算,平均每年就要多算出0.0078天,这样,经过400年就会多算出大约3天来。因此,每400年中要减少3个闰年。所以公历规定:年份是整百数时,必须是400的倍数才是闰年;不是400的倍数的世纪年,即使是4的倍数也不是闰年。

这就是通常说的:四年一闰,百年不闰,四百年再闰。 例如:2000年是闰年,2100年则是平年。

C++ 实例

#include <iostream>
using namespace std;

int main()
{
    int year;
    string choose;
    while (true)
    {
        cout << "输入年份: ";
        cin >> year;

        if (year % 4 == 0)
        {
            if (year % 100 == 0)
            {
                // // 这里如果被 400 整除是闰年
                if (year % 400 == 0)
                    cout << year << " 是闰年";
                else
                {
                    cout << year << " 不是闰年";
                }
            }
            else
            {
                cout << year << " 是闰年";
            }
        }
        else
        {
            cout << year << " 不是闰年";
        }

        cout << endl; 
        cout << "是否继续(yes/no)" << endl;
        cin >> choose;
        if (choose == "no" || choose == "n")    
        {
            system("pause");
            return 0;
        }
        else
        {
            system("cls");
        }
    }
}

更多经典案例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jacob-xyb

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值