如何判别闰年?

转载 2004年08月12日 11:11:00

闰年的来历
 
关于公历闰年是这样规定的:地球绕太阳公转一周叫做一回归年,一回归年长365日5时48分46秒。因此,公历规定有平年和闰年,平年一年有365日,比回归年短0.2422日,四年共短0.9688日,故每四年增加一日,这一年有366日,就是闰年。但四年增加一日比四个回归年又多0.0312日,400年后将多3.12日,故在400年中少设3个闰年,也就是在400年中只设97个闰年,这样公历年的平均长度与回归年就相近似了。由此规定:年份是整百数的必须是400的倍数才是闰年,例如1900年、2100年就不是闰年。

中国旧历农历纪年中,有闰月的一年称为闰年。一般年份为12个月,354或355天,闰年则为13个月,383或384天。农历作为阴阳历的一种,每月的天数依照月亏而定,一年的时间以12个月为基准;为了合上地球围绕太阳运行周期即回归年,每隔2到4年,增加一个月,增加的这个月为闰月,因此农历的闰年为13个月。
    农历没有第十三月的称谓,闰月按照历法规则,排放在从二月到十月的过后重复同一个月,重复的这个月为闰月,如四月过后的闰月称为闰四月。
    农历闰年闰月的推算,3年一闰,5年二闰,19年七闰;农历基本上19年为一周期对应于公历同一时间。如公历的2001年5月27日、1982年5月27日和1963年5月27日这个日子,都是闰四月初五。
    


  •     
  • 闰月加到哪个月,以农历历法规则推断,主要依照与农历的二十四节气相符合来确定;
        
  • 农历的闰月天数与正常月份天数一样,为29或30天。
        
  • 农历所谓“闰”的说法,只有闰年和闰月称谓,公历也有闰年的称谓。
        


    公历1982年至2042年与农历闰年闰月对照表
    公历所在月份 闰月(初一日) 干支年
    1982年5月23日 闰四月小 壬戊年
    1984年11月23日 闰十月大 甲子年
    1987年7月26日 闰六月大 丁卯年
    1990年6月23日 闰五月大 庚午年
    1993年4月22日 闰三月大 癸酉年
    1995年9月25日 闰八月大 乙亥年
    1998年6月24日 闰五月小 戊寅年
    2001年5月23日 闰四月大 辛巳年
    2004年3月21日 闰二月大 甲申年
    2006年8月24日 闰七月大 丙戊年
    2009年6月23日 闰五月大 己丑年
    2012年5月21日 闰四月小 壬辰年
    2014年10月24日 闰九月小 甲午年
    2017年7月23日 闰六月大 丁酉年
    2020年5月23日 闰四月小 庚子年
    2023年3月22日 闰二月大 癸卯年
    2025年7月25日 闰六月大 己巳年
    2028年6月23日 闰五月大 戊申年
    2031年4月22日 闰三月大 辛亥年
    2033年8月25日 闰七月大 癸丑年
    2036年7月23日 闰六月小 丙辰年
    2039年6月22日 闰五月大 己未年
    2042年3月22日 闰二月大 壬戊年

下面是用Java实现的判断闰年的算法:

//LeapYear.java

public class LeapYear{
 public static void main( String args[] ){
  int year=2052; //method 1
  
  if( (year%4==0 && year%100!=0) || (year%400==0) )
   System.out.println(year+" is a leap year.");
  else
   System.out.println(year+" is not a leap year.");
  
  year=2052; //method 2
  boolean leap;
  if( year%4!=0 )
   leap=false;
  else if( year%100!=0 )
   leap=true;
  else if( year%400!=0 )
   leap=false;
  else
   leap=true;
   
  if( leap==true )
   System.out.println(year+" is a leap year.");
  else
   System.out.println(year+" is not a leap year.");
   
  year=2052; //method3
  if( year%4==0){
   if( year%100==0 ){
    if( year%400==0)
     leap=true;
    else
     leap=false;
   }else
    leap=true;
  }else
   leap=false;
  
  if( leap==true )
   System.out.println(year+" is a leap year.");
  else
   System.out.println(year+" is not a leap year.");
 }
}

基本形状开发

基本形状开发Microsoft Corporation 2000年10月 适用于Microsoft Visio 2000 企业版Microsoft Visio 2000 专业版Microsoft Vi...
  • ghj1976
  • ghj1976
  • 2000-12-23 09:07:00
  • 2979

给年份year,定义一个宏,以判别该年份是否闰年。提示:宏名可以定义为LEAP_YEAR,形参为y,既定义宏的形式为 #define LEAP_YEAR(y) (读者设计的字符串)

#include #define LEAP_YEAR(year) ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) using na...
  • u011053407
  • u011053407
  • 2014-05-14 20:46:34
  • 2385

闰年的判别

闰年的判别  body bgcolor="#FFFFFF">闰年判别 if Request.Form("cal")="y" thenn=Cint(Request.form("me"))if ((n ...
  • feng_sundy
  • feng_sundy
  • 2004-10-27 13:34:00
  • 1049

C#一种关于闰年的输出

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * 作 ...
  • lizhaoqing123
  • lizhaoqing123
  • 2012-09-10 23:10:08
  • 1633

java常用类练习04(计算天数间隔和周数、输出21世纪的闰年、大小写字母转换、判断输出是否为闰年该月有几天星期几)

1.计算某年、某月、某日和某年、某月、某日之间的天数间隔和周数。 2.计算并输出21世纪的闰年,计算程序的执行时间 3.编写一个程序,设定一个有大小写字母的字符串,先将字符串的大写字符输出,再将字符...
  • fzhwk
  • fzhwk
  • 2017-10-25 10:10:23
  • 345

给年份year,定义一个宏,以判别该年份是否闰年。提示:宏名可以定义为LEAP_YEAR,形参为y,既定义宏的形式为 #define LEAP_YEAR(y)

题目描述 给年份year,定义一个宏,以判别该年份是否闰年。提示:宏名可以定义为LEAP_YEAR,形参为y,既定义宏的形式为 #define LEAP_YEAR(y) (读者设计的字符串) ...
  • cjhxydream
  • cjhxydream
  • 2017-03-20 20:47:50
  • 1658

闰年的判别.

  • insiston0635
  • insiston0635
  • 2017-09-21 18:39:36
  • 144

【C语言】判断闰年

原理: 能被4整除且不能被100整除,或者能被400整除。 判断能否被整除用%取余运算,结果为0则表示可以。...
  • weixin_38239856
  • weixin_38239856
  • 2017-04-09 19:58:38
  • 195

闰年判别

闰年判别 if Request.Form("cal")="y" then n=Cint(Request.form("me")) if ((n mod 4=0) and (n mod 10...
  • u014739801
  • u014739801
  • 2014-04-30 14:35:07
  • 230

C语言之判断闰年

我们要判断任意一个年分是否是闰年,首先需要知道什么是闰年的条件。闰年就是能够被4整除且不能被100整除或者能被400整除的。 C代码实现如下: #include int main() ...
  • hpf247
  • hpf247
  • 2017-03-05 01:05:45
  • 584
收藏助手
不良信息举报
您举报文章:如何判别闰年?
举报原因:
原因补充:

(最多只允许输入30个字)