判断闰年详解

题目:

  给定一个公历年份,判断其是不是闰年?

  思路:四年一闰,百年不闰,四百再闰。简单的讲,就是每过四年为一个闰年,但是每过一百年不是闰年,每过四百年又是闰年。相信大家的编程思路就出来了,下面是C/C++代码和Java代码.

C/C++代码示例:

#include <iostream>

using namespace std;

int main()
{
    int Year;
    while(cin>>Year)
    {
        if(Year%400==0)
            cout<<Year<<"是闰年"<<endl;
        else if(Year%4==0 && Year%100!=0)
            cout<<Year<<"是闰年"<<endl;
        else
            cout<<Year<<"是平年"<<endl;
    }
    return 0;
}

Java代码示例:

import java.util.Scanner;

public class Runnian {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int Year;
        while(true)
        {
           Scanner s = new Scanner(System.in);
           Year=s.nextInt();
           if(Year%400==0)
                   System.out.println(Year+"是闰年");
            else if(Year%4==0 && Year%100!=0)
                System.out.println(Year+"是闰年");
            else
                System.out.println(Year+"是平年");
        }

    }

}

下面给出详细解答思路,也可以当做拓展知识,因为前面已将足够解题了。

其实,并没有什么平年闰年,因为这些知识,都来源于老祖先人们的规定罢了,正所谓无规矩不方圆嘛,如果我是制作规则那个人,说不定,就没有男女之分了,公用一种厕所。哈哈哈!

咳咳,下面谈正经的。基本知识,地球自转一圈为一天,公转一圈为一年。但是呢,不是所有的事情都是这么恰到好处的,有误差,那是肯定的。有一天,祖宗们闲的蛋疼,拿个秒表在那计算地球公转的具体时间为365日5时48分46秒,呵呵,看来每年还多出近6个小时,那怎么办呢?不可能忽略不计吧,一年误差还好,要是一千年呢?误差对于人内而言就大了,毕竟人类是渺小的哇。所以,祖宗们才规定了平年和闰年来decrease这种误差。

怎么解决的呢?下面就是小学算术啦。

首先,地球公转一圈为365日5时48分46秒,为了方便,每圈多出来的0.2422日乘以4,就是0.9688日,是不是接近一天啦,然后就在第四年中加一天,也就是每四年一闰年。别以为就完啦,毕竟0.9688日也不是一日哇,四年过后,不就多了0.0312日嘛,时间毕竟不是金钱哇,存银行是不会产生利息的!所以,四百年过后,多的这3.12日怎么算呢?祖宗回答说,能怎么办,减呗。于是,就在每四百年中少设置3个闰年,这样,每四年多0.0312日,每一百年就多0.78日,就算他一日嘛,所以就在每一百年减少一个闰年,也就是我们所说的百年不闰。还没完哈,因为这一百年多的0.78日,毕竟也不是一日,多减了0.22日,四百年过后,就是0.88日了,所以又多了将近一日了,那么就每四百年加一个闰年。那么就很好懂,四年一闰,百年不闰,四百再闰的说法了。

读者心中肯定有疑问,毕竟0.88日也不是一日哇,多加的这0.12日怎么办?

我给出的的回答是,你先能活到一百年再谈四百年。估计,能活到一百岁的都活够了吧,表示理解和尊重David Goodall教授。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值