• 闰平年简介及计算过程描述


    历法规则的来由
    若一年按365天5h48'46''(此时86400年也是闰年)计算:
    (1) 一年日数必须是整数,不便将零时数计入,所以取365天为一年,则余5时48分46秒;
    (2) 积至4年约满一日,所以4年一“闰日”,谓之“闰年”,无“闰日”之年为平年,即平年365天,闰年366天。但到4年之时,仅有23时15分4秒闰一日,欠缺44分56秒;
    (3) 积至100年(25闰)时就欠缺18时43分20秒,约合3 / 4日,所以满100年不闰。此时又余5时16分40秒;
    (4) 积至400年余21时6分40秒又闰。又欠缺2时53分20秒;
    (5) 积至3200年计欠缺23时6分40秒,所以满3200年不闰。此时又余53分20秒;
    (6) 积至86400年刚好24 时又一闰,这时不余不欠,需重计算。

    所以按阳历计算就有上面的闰年规则。

    判断是否闰年的计算规则
    能被4整除,且不能被100整除;或者能被400整除,且不能被3200整除;或者能被86400整除。

    口诀:四年一闰,百年不闰,四百年再闰 (此口诀忽略了3200年和86400年的部分,但对于2015年的现在,3200年太遥远,86400年更遥远...所以非严格来说此口诀也正确)

    计算过程描述
    1. 获取用户输入部分
    判断是否合法输入(此处我们假设合法输入指的是大于0的正整数):若是则继续下一步:若否则给出错误提示,并要求用户重新输入。
    2. 判断闰平年核心逻辑部分
    假如用户输入的年份是year,则:
    (1) 计算 yushu = year % 4 ( % 为取余操作符,用来计算除法余数的,比如 2016 % 4 = 0, 2015 % 4 = 3)
    如果yushu不等于0,则表示year不能被4整除,程序返回平年;
    如果yushu等于0,则表示year能被4整除,继续下一步;
    (2) 计算 yushu = year % 100,
    如果yushu不等于0,则表示year不能被100整除,程序返回闰年;
    如果yushu等于0,则表示year能被100整除,继续下一步;
    (3) 计算 yushu = year % 400,
    如果yushu不等于0,则表示year不能被400整除,程序返回平年;
    如果yushu等于0,则表示year能被400整除,继续下一步;[很多程序计算到这里就返回闰年结束计算,正如“四年一闰,百年不闰,四百年再闰”所述,但为了使程序结果更加准确,我们还需要进行额外的判断]
    (4) 计算 yushu = year % 3200,
    如果yushu不等于0,则表示year不能被3200整除,程序返回闰年;
    如果yushu等于0,则表示year能被3200整除,继续下一步;
    (5) 计算 yushu = year % 86400,
    如果yushu不等于0,则表示year不能被86400整除,程序返回平年;
    如果yushu等于0,则表示year能被86400整除,程序返回闰年;
    至此计算结束。

     

  • 相关阅读:
    Hadoop杂记
    hadoop主节点(NameNode)备份策略以及恢复方法
    (转)第12章 Shell脚本编程
    Hadoop添加删除节点
    secondarynamenode异常
    (转)Memcached笔记——(一)安装&常规错误&监控
    浅(kou)谈(hu)杜教筛
    Pollard_Rho 算法
    Miller_Rabin 素数判定算法
    zoj分类(包括poj已做的)
  • 原文地址:https://www.cnblogs.com/shelwin/p/4923480.html
Copyright © 2020-2023  润新知