㈠闰年是如何来的?

闰年(Leap Year)是为了弥补因人为历法规定造成的年度天数与地球实际公转周期的时间差而设立的。补上时间差的年份为闰年。

㈡什么是闰年?

凡阳历中有闰日(二月为二十九日)的年,或阴历中有闰月(一年有十三个月)的年;闰余(岁余置闰。阴历每年与回归年相比所差的时日)。

闰年共有366天(1-12月分别为31天,29天,31天,30天,31天,30天,31天,31天,30天,31天,30天,31天)。

㈢闰年分类

⑴平年为365天,闰年为366天

⑵闰年是公历中的名词。闰年分为普通闰年和世纪闰年。

⑶普通闰年:公历年份是4的倍数的,一般是闰年。

⑷世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年。

㈣简洁判断闰年的方法

★按一回归年365天5小时48分45.5秒。

⑴普通年能被4整除且不能被100整除的为闰年。(如2004年就是闰年,1901年不是闰年)

⑵世纪年能被400整除的是闰年。(如2000年是闰年,1900年不是闰年)

⑶对于数值很大的年份,这年如果能整除3200一般不是闰年,但是如果能整除172800则是闰年。

如172800年是闰年,86400年不是闰年(因为虽然能整除3200,但不能整除172800)(此按一回归年365天5h48'45.5''计算)。

㈤闰年与闰月

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

㈥阳历闰年

⑴阳历闰年共有366天(1-12月分别为31天,29天,31天,30天,31天,30天,31天,31天,30天,31天,30天,31天),

⑵地球绕太阳运行周期为365天5小时48分46秒(合365.24219天)即一回归年(tropical year)。公历的平年只有365日,比回归年短约0.2422 日,所余下的时间约为四年累计一天,故四年于2月加1天,使当年的历年长度为366日,这一年就为闰年。现行公历中每400年有97个闰年。

⑶按照每四年一个闰年计算,平均每年就要多算出0.0078天,这样经过四百年就会多算出大约3天来,因此,每四百年中要减少三个闰年。所以规定,公历年份是整百数的,必须是400的倍数的才是闰年,不是400的倍数的,虽然是4的倍数,也是平年,这就是通常所说的: 四年一闰,百年不闰,四百年再闰。 例如,2000年是闰年,1900年则是平年。

㈦公历闰年

⑴农历闰年由于比平年(354天)多一个月,所以实际上为383天或者384天(具体闰哪个月是由节气情况决定的)。

⑵中国旧历农历作为阴阳历的一种,每月的天数依照月亏而定,一年的时间以12个月为基准,平年比一回归年少约11天。为了合上地球围绕太阳运行周期即回归年,每隔2到4年,增加一个月,增加的这个月为闰月。闰月加到哪个月,以农历历法规则推断,主要依照与农历的二十四节气相符合来确定。在加有闰月的那一年有13个月,历年长度为384或385日,这一年也称为闰年。如1984年鼠年的农历中,有两个十月,通常成为前十月和后十月(即闰月)。农历闰年闰月的推算,3年一闰,5年二闰,19年七闰;农历基本上19年为一周期对应于公历同一时间。如公历的2001年5月27日、1982年5月27日和1963年5月27日这个日子,都是闰四月初五。

⑶农历(即中国的阴历)的历月是以朔望月为依据的。朔望月的时间是29日12小时44分3秒(即29.5366日),因此农历是大月30天,小月29天。农历是基本上以12个月作为一年的,但12个朔望月的时间是354.3667日,和回归年比起来要相差11天左右。这样每隔3年就要多出33天,即大约多出一个多月。 为了要把多余的日数消除,每隔3年就要加一个月,这就是农历的闰月。有闰月的一年也叫闰年,所以民间又有“三年两闰,三年两不闰”的说法。所以农历的闰年就有13个月了。至于闰哪个月是由节气情况决定的。

㈧计算方法

☀文字叙述

⑴按一回归年365天5h48'45.5''计算

⑵一年日数必须是整数,不便将零时数计入,所以取365天为一年,则余5时48分46秒 

⑶积至4年约满一 日,所以4年一“闰日”,谓之“闰年”,无“闰日”之年为平年,即平年365天,闰年366天

⑷但到4年之时,仅有23时15分4秒闰一日。       但是欠缺44分56秒

⑸积至100年(25闰)时就欠缺18时43分20秒,约合3 / 4日,所以满100年不闰

⑹此时又余5时16分40秒,积至400年余21时6分40秒又闰

⑺又欠缺2时53分20秒,积至3200年计欠缺23时6分40秒,所以满3200年不闰

⑻此时又余53分20秒,积至86400年刚好24 时又一闰,这是不余不欠。

所以:判定公历闰年应遵循的一般规律为:四年一闰,百年不闰,四百年再闰.

★数学公式计算

一个回归年,H=(365*24*3600+5*3600+48*60+46)秒=31556926秒=15778463*2秒
 
1天 D=86400秒=43200*2秒
 
一个回归年=H/D天=15778463*2/(43200*2)天=365.2421990740740740740740740740....天
 
4年一闰:365*4+1=1461天=15778800/10800天
 
4个回归年为(15778463/43200)*4=15778463/10800天
 
4年一闰,公历比回归年时间多337/10800天
 
增加百年不闰400年再闰规则后:
 
400个公历年天数为365*400+97=146097天=15778476/108天
 
400个回归年为(15778463/43200)*400=15778463/108天
 
公历比回归年时间多13/108天
 
增加3200年不闰规则后:
 
3200个公历年天数为365*3200+97*(3200/400)-1=1168775天=31556925/27天
 
3200个回归年为15778463*3200/43200=15778463*32/432=31556926/27天
 
公历比回归年时间少1/27天
 
增加86400年再闰规则后:
 
86400个公历年天数为365*86400+(97*8-1)*(86400/3200)+1=365*86400+775*27+1=31556926=852037002/27天
 
86400个回归年为15778463*86400/43200=15778463*864/432=15778463*54/27=852037002/27天
 
公历比回归年时间少0天
 
结论:一天定义24小时即86400秒,需要86400年一个循环才能消除公历和回归年时间差。
 
 
㈨JavaScript 语言计算
function isLeapYear(year){
if((year/4==Math.floor(year/4)&&year/100!=Math.floor(year/100))||(year/400==Math.floor(year/400)&&year/3200!=Math.floor(year/3200))||year/172800==Math.floor(year/172800)){
return true
}
return false
}

闰年计算——JavaScript 语言计算的更多相关文章

  1. 关于JavaScript中计算精度丢失的问题

    摘要: 由于计算机是用二进制来存储和处理数字,不能精确表示浮点数,而JavaScript中没有相应的封装类来处理浮点数运算,直接计算会导致运算精度丢失. 为了避免产生精度差异,把需要计算的数字升级(乘 ...

  2. 如何保证javascript算数计算结果的精度

    前言: 我们先看如下这个js的代数计算结果,什么? 明显不是我们想要的结果3.52!! 备注:其实这个小数计算精度问题,在弱类型语言python等语言中同样存在. 问题原因之所在: JavaScrip ...

  3. C语言计算两个日期间隔天数

    在网上看到了一个C语言计算日期间隔的方法,咋一看很高深,仔细看更高神,很巧妙. 先直接代码吧 #include <stdio.h> #include <stdlib.h> in ...

  4. 0.1+0.2不等于0.3,微信小程序云开发如何解决JavaScript小数计算精度失准的问题

    先看图 这个是JavaScript语言自身存在的一个问题.说道这里不得不提一下网上流传的JavaScript搞笑图 我们在使用云开发来开发微信小程序的时候,会经常遇到JavaScript小数计算精度失 ...

  5. R语言计算moran‘I

    R语言计算moran‘I install.packages("maptools")#画地图的包 install.packages("spdep")#空间统计,m ...

  6. R语言计算相关矩阵然后将计算结果输出到CSV文件

    R语言计算出一个N个属性的相关矩阵(),然后再将相关矩阵输出到CSV文件. 读入的数据文件格式如下图所示: R程序采用如下语句: data<-read.csv("I:\\SB\land ...

  7. Javascript时间差计算函数代码实例

    Javascript时间差计算函数代码实例 <script language="javascript"> Date.prototype.dateDiff = funct ...

  8. R语言计算IV值

    更多大数据分析.建模等内容请关注公众号<bigdatamodeling> 在对变量分箱后,需要计算变量的重要性,IV是评估变量区分度或重要性的统计量之一,R语言计算IV值的代码如下: Ca ...

  9. [转帖]C语言计算时间函数 & 理解linux time命令的输出中“real”“user”“sys”的真正含义

    C语言计算时间函数 & 理解linux time命令的输出中“real”“user”“sys”的真正含义 https://blog.csdn.net/willyang519/article/d ...

随机推荐

  1. java 兔子生仔问题

    题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少? 程序分析: 兔子的规律为数列1,1,2,3,5,8 ...

  2. PostgreSQL编码格式:客户端服务器、客户端、服务器端相关影响

    关于字符编码这块,官网链接: https://www.postgresql.org/docs/current/charset.html 刚刚写了几百字的东西因为断网,导致全没有了,重头再写,我就只想记 ...

  3. sql实现同时向主表和子表插入数据方法

    使用sql语句实现同时向主表和子表插入数据方法: Oracle: -- oracle创建sequence create sequence SEQ_test minvalue 1 maxvalue 99 ...

  4. GitHub从小白到熟悉<三>

    上传文件

  5. PYQT5 pyinstaller 打包工程

    win+R 输入cmd  回车 首先安装 pyinstaller : pip install pyinstaller 安装 pywin32: pip install pywin32 在cmd中输入工程 ...

  6. LeetCode 初次使用 两数之和的训练

    首先看到示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 想到,我可以先在nu ...

  7. JVM 线上故障排查基本操作 (转)

    前言 对于后端程序员,特别是 Java 程序员来讲,排查线上问题是不可避免的.各种 CPU 飚高,内存溢出,频繁 GC 等等,这些都是令人头疼的问题.楼主同样也遇到过这些问题,那么,遇到这些问题该如何 ...

  8. 编译LAMP部署动态网站环境

    LAMP动态网站部署架构是由一套 Linux+Apache+MySQL+PHP 组成的动态网站系统解决方案. 以下配置环境为:Linux=RHEL7 --> Apache=2.4.33 --&g ...

  9. DataX操作指南

    1.DataX介绍 DataX DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL.Oracle.SqlServer.Postgre.HDFS.Hive.ADS.HB ...

  10. JS基础_数据类型-Null类型和Undefined类型

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...