今天给小欣然辅导数学,把自己对闰年的模糊认识重新清楚了一下,发上来和大家共享一下。
知道的同学不要见笑,不清楚的同学,咱一起再明确一下。
1、闰年的含义 闰年(leap year)是为了弥补因人为历法规定造成的年度天数与地球实际公转周期的时间差而设立的。补上时间差的年份为闰年。
闰年共有366天(31,29,31,30,31,30,31,31,30,31,30,31)。
2、闰年的判定方法 判定公历闰年遵循的规律为: 四年一闰,百年不闰,四百年再闰.
公历闰年的简单计算方法:(符合以下条件之一的年份即为闰年)
1。能被4整除而不能被100整除。(如2004年就是闰年,1900年不是)
2。能被400整除。(如2000年是闰年)
题:是不是能被4整除的年份都是闰年?回答:错!
3、不同历法中的闰年 闰年包括在公历(格里历)或夏历中有闰日的年份,和在中国农历中有闰月的年份。
3.1 公历中的闰年
地球绕日运行周期为365天5小时48分46秒(合365.24219天),即一回归年(tropical year)。公历的平年只有365日,比回归年短约0.2422 日,每四年累积约一天,把这一天加于2月末(即2月29日),使当年时间长度变为366日,这一年就为闰年。
需要注意的是,现在的公历是根据罗马人的"儒略历"改编而得。由于当时没有了解到每年要多算出0.0078天的问题,从公元前46年,到16世纪,一共累计多出了10天。为此,当时的教皇格雷果里十三世,将1582年10月5日人为规定为10月15日。并开始了新闰年规定。即规定公历年份是整百数的,必须是400的倍数才是闰年,不是400的倍数的就是平年。比如,1700年、1800年和1900年为平年,2000年为闰年。此后,平均每年长度为365.2425天,约4年出现1天的偏差。按照每四年一个闰年计算,平均每年就要多算出0.0078天,经过四百年就会多出大约3天来,因此,每四百年中要减少三个闰年。闰年的计算,归结起来就是通常说的:四年一闰;百年不闰,四百年再闰。
由于地球的自转速度逐渐降低,而公转速度则相对更加稳定,所以上述的系统经过更长的周期也会发生微小的误差。据计算,每8000年会有一天的误差,所以英国的天文学家John Herschel提议公元4000为平年,以后类推12000年,20000年亦为平年。但此提议从未被正式采纳。原因是到了4000年,地球自转的精确速度并非现在可以预测,所以届时参照真实数据方可做出判断。因此,在长远的将来,针对闰年的微小调整应该不是由预定的系统决定,而是随时不定性的。
3.2 中国农历中的闰年
中国旧历农历作为阴阳历的一种,每月的天数依照月亏而定,一年的时间以12个月为基准,平年比一回归年少约11天。为了合上地球围绕太阳运行周期即回归年,每隔2到4年,增加一个月,增加的这个月为闰月。闰月加到哪个月,以农历历法规则推断,主要依照与农历的二十四节气相符合来确定。在加有闰月的那一年有13个月,历年长度为384或385日,这一年也称为闰年。如1984年鼠年的农历中,有两个十月,通常成为前十月和后十月(即闰月)。农历闰年闰月的推算,3年一闰,5年二闰,19年七闰;农历基本上19年为一周期对应于公历同一时间。如公历的2001年5月27日、1982年5月27日和1963年5月27日这个日子,都是闰四月初五。
公历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日 闰二月大 壬戊年
4、用程序计算闰年 用程序算出2000年到4000年之间的所有闰年:
int leapyear(int year) //判断某年是否闰年 闰年返回1,平年返回0
{
if ((year%400==0) || (year%100!=0) && (year%4==0))
return 1;
else
return 0;
}
void main()
{
int i=2000;
for(i;i<=4000;i++)
{
if(leapyear(i) == 1)
printf("%d,",i);
}
}
2000,2004,2008,2012,2016,2020,2024,2028,2032,2036,2040,2044,2048,2052,2056,2060,
2064,2068,2072,2076,2080,2084,2088,2092,2096,2104,2108,2112,2116,2120,2124,2128,
2132,2136,2140,2144,2148,2152,2156,2160,2164,2168,2172,2176,2180,2184,2188,2192,
2196,2204,2208,2212,2216,2220,2224,2228,2232,2236,2240,2244,2248,2252,2256,2260,
2264,2268,2272,2276,2280,2284,2288,2292,2296,2304,2308,2312,2316,2320,2324,2328,
2332,2336,2340,2344,2348,2352,2356,2360,2364,2368,2372,2376,2380,2384,2388,2392,
2396,2400,2404,2408,2412,2416,2420,2424,2428,2432,2436,2440,2444,2448,2452,2456,
2460,2464,2468,2472,2476,2480,2484,2488,2492,2496,2504,2508,2512,2516,2520,2524,
2528,2532,2536,2540,2544,2548,2552,2556,2560,2564,2568,2572,2576,2580,2584,2588,
2592,2596,2604,2608,2612,2616,2620,2624,2628,2632,2636,2640,2644,2648,2652,2656,
2660,2664,2668,2672,2676,2680,2684,2688,2692,2696,2704,2708,2712,2716,2720,2724,
2728,2732,2736,2740,2744,2748,2752,2756,2760,2764,2768,2772,2776,2780,2784,2788,
2792,2796,2800,2804,2808,2812,2816,2820,2824,2828,2832,2836,2840,2844,2848,2852,
2856,2860,2864,2868,2872,2876,2880,2884,2888,2892,2896,2904,2908,2912,2916,2920,
2924,2928,2932,2936,2940,2944,2948,2952,2956,2960,2964,2968,2972,2976,2980,2984,
2988,2992,2996,3004,3008,3012,3016,3020,3024,3028,3032,3036,3040,3044,3048,3052,
3056,3060,3064,3068,3072,3076,3080,3084,3088,3092,3096,3104,3108,3112,3116,3120,
3124,3128,3132,3136,3140,3144,3148,3152,3156,3160,3164,3168,3172,3176,3180,3184,
3188,3192,3196,3200,3204,3208,3212,3216,3220,3224,3228,3232,3236,3240,3244,3248,
3252,3256,3260,3264,3268,3272,3276,3280,3284,3288,3292,3296,3304,3308,3312,3316,
3320,3324,3328,3332,3336,3340,3344,3348,3352,3356,3360,3364,3368,3372,3376,3380,
3384,3388,3392,3396,3404,3408,3412,3416,3420,3424,3428,3432,3436,3440,3444,3448,
3452,3456,3460,3464,3468,3472,3476,3480,3484,3488,3492,3496,3504,3508,3512,3516,
3520,3524,3528,3532,3536,3540,3544,3548,3552,3556,3560,3564,3568,3572,3576,3580,
3584,3588,3592,3596,3600,3604,3608,3612,3616,3620,3624,3628,3632,3636,3640,3644,
3648,3652,3656,3660,3664,3668,3672,3676,3680,3684,3688,3692,3696,3704,3708,3712,
3716,3720,3724,3728,3732,3736,3740,3744,3748,3752,3756,3760,3764,3768,3772,3776,
3780,3784,3788,3792,3796,3804,3808,3812,3816,3820,3824,3828,3832,3836,3840,3844,
3848,3852,3856,3860,3864,3868,3872,3876,3880,3884,3888,3892,3896,3904,3908,3912,
3916,3920,3924,3928,3932,3936,3940,3944,3948,3952,3956,3960,3964,3968,3972,3976,
3980,3984,3988,3992,3996,4000,
使用非过程化语言来测算闰年
import java.util.*;
public class LeapYears {
public static void main (String[ ] args) {
Scanner input = new Scanner (System.in);
System.out.println ("输入年份: ");
int year = input.nextInt ();
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { //输出某年是闰年
System.out.println (year + "年是闰年");
} else { //输出某年是平年
System.out.println (year + "年是平年");
}
}
} |