一、闰年有“公历”和“农历”之分 闰年在公历和农历中的概念是不一样的。我们经常讨论的闰年,其实是公历闰年。 公历有闰日的年份叫闰年。 农历有闰月的年份叫闰年。 公历闰年与农历闰年两者并不重合,如1995年、2001年农历是闰年,公历并不是闰年;而2000年,公历是闰年,农历并不是闰年。这里有一个1982年—2042年的对照。 二、公历闰年的判定 一般的常识是4年一闰,能被4整除的年即是闰年,其实这并不尽然。到底哪些年份是闰年?如何判断闰年? 在公历纪年中,有闰日的年份叫闰年,一般年份365天,闰年为366天。由于地球绕太阳运行周期为365天5小时48分46秒(合36524219天)即一回归年,公历把一年定为365天。所余下的时间约4年累计一天,加在二月里并且固定在二月,所以平常年份每年365天,二月为28天,闰年为366天,二月为29天。每400年中有97个闰年。 闰年通常的计算方法:公元纪年的年数可以被4整除,即为闰年;但是,被4整除的年份却不一定就是闰年,如1700年、1900年,就不是闰年。世纪交替的年份,被100整除而不能被400整除的为平年;被100整除也可被400整除的为闰年。如公元2000年是闰年,而公元1000年、3000年不是。这里有一个闰年计算公式,有兴趣的可以看看。 三、农历闰月的推算 农历有闰月的一年称为闰月年,但现在习惯上也称为闰年(因此易于和公历闰年混淆)。一般年份为12个月,354或355天,闰年则为13个月,383或384天。 农历没有第十三月的称谓,闰月按照历法规则,排放在从二月到十月的过后重复同一个月,重复的这个月为闰月,如四月过后的闰月称为闰四月。 农历闰年的规律是3年一闰、5年二闰、19年七闰,闰月具体加到哪个月,依照农历历法规则推断,主要依照与农历的二十四节气相符合来确定,通常将只有一个节气的月份(一般是小月)设置为闰月以进行弥补。农历的闰月天数与正常月份天数一样,为29或30天。 农历基本上19年为一周期对应于公历同一时间。如公历的2001年5月27日、1982年5月27日和1963年5月27日这个日子,都是闰四月初五。
首先,了解闰年的含义:闰年是为了弥补因人为历法规定造成的年度天数与地球实际公转周期的时间差而设立的,补上时间差的年份为闰年。
然后,闰年的置算法则是:四年一闰;百年不闰,四百年再闰
具体如下:
非整百年能被4整除的为闰年。(如2004年就是闰年,2100年不是闰年)
能被400整除的是闰年。(如2000年是闰年,1900年不是闰年)
最后,清楚计算规则了,直接编码实现即可。java程序示例:
public static boolean isLeapYear(Integer year) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
return true;
} else
return false;
}
public static void main(String[] args) {
Integer i = new Integer(400);
boolean res = isLeapYear(i);
Systemoutprintln(res);
}
}首先,闰年的计算方式是:
1
能被4整除且又不能被100整除
是闰年;
2
能直接被400整除也是闰年。
所以,这个公式是这样解释的:today()是取今天的日期;
year(today())是取今天所属的年,这里得到的就是
2014
;
mod(year(Today()),4)=0
是表示今天所属的年能被4整除为
true,不能为
false;
同理mod(year(Today()),100)>0
你这里在100后面少了一个“)”,是表示今天所属的年不能被100整除为true,能为
false;
And(mod(year(Today()),4)=0
, mod(year(Today()),100)>0 )就是这两个条件要同时满足,也就是上面提到的第一点:能被4整除且又不能被100整除
是闰年;
同理,MOD(YEAR(TODAY()),400)=0
注意这里应该是0,而不是
O是表示今天所属的年能被400整除为
true,不能为
false;也就是上面提到的第二点:能直接被400整除也是闰年。
Or(AND(MOD(YEAR(TODAY()),4)=0,MOD(YEAR(TODAY()),100)>0),MOD(YEAR(TODAY()),400)=0)
就是这两个条件任一一个满足即可。
明白了吗?
怎样判断平年和闰年的方法如下:
第一种、一般的能被4整除的年份是闰年,不能被4整除的年份是平年。如:1988年2008年是闰年,2005年2006年2007年是平年。
第二种、如果是世纪年(也就是整百年),就只有能被400整除才是闰年,否则就是平年。如:2000年就是闰年,1900年就是平年。
第三种、只看当年的二月份,闰年的2月有29天,平年的2月只有28天。
第四种、看年份的末两位,如果末两位数能整除4,那么就是闰年,反之就不是。
平年:阳历没有闰日,或者农历没有闰月的年份,叫作平年。非整百的年份除以4,或者整百的年份除以400,若不能整除的,即为平年。平年的二月只有28天。阳历平年是365天,农历平年一般是354天或355天,极少数为353天。
闰年:是为了弥补因人为历法规定造成的年度天数与地球实际公转周期的时间差而设立的。补上时间差的年份为闰年。闰年共有366天(1月~12月分别为31天、29天、31天、30天、31天、30天、31天、31天、30天、31天、30天、31天)。
公历闰年计算
(按一回归年365天5小时48分455秒)。
1、非整百年份:能被4整除的是闰年。(如2004年就是闰年,2001年不是闰年)
2、整百年份:能被400整除的是闰年。(如2000年是闰年,1900年不是闰年)
3、对于数值很大的年份:如果这一年能被3200整除,那么这一年不是闰年,但如果这一年能被172800整除,则为闰年。
最简单的判断方法:二月最后一天为二十九日的年份就是闰年复杂的精确计算方法:
①、普通年能被4整除且不能被100整除的为闰年。(如2004年就是闰年,1901年不是闰年) ②、世纪年能被400整除的是闰年。(如2000年是闰年,1900年不是闰年)
③、对于数值很大的年份,这年如果能整除3200,并且能整除172800则是闰年。如172800年是闰年,86400年不是闰年(因为虽然能整除3200,但不能整除172800)(此按一回归年365天5h48'455''计算)。
判定公历闰年遵循的一般规律为:四年一闰,百年不闰,四百年再闰闰年是为了弥补因人为历法规定造成的年度天数与地球实际公转周期的时间差而设立的。补上时间差的年份,即有闰日的年份为闰年
公历闰年判定遵循的规律为: 四年一闰,百年不闰,四百年再闰
公历闰年的简单计算方法(符合以下条件之一的年份即为闰年)
1。能被4整除而不能被100整除。
2。能被400整除。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)