五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > 閏年算法和閏年計算方法

閏年算法和閏年計算方法

文章來源:365jz.com     點擊數(shù):1202    更新時間:2018-10-20 20:26   參與評論

一:什么是閏年

關于公歷閏年是這樣規(guī)定的:地球繞太陽公轉一周叫做一回歸年,一回歸年長365日5時48分46秒。
因此,公歷規(guī)定有平年和閏年,平年一年有365日,比回歸年短0.242199日,一般用四位小數(shù)計算,及0.2422,四年共短0.9688日,故每四年增加一日,并且把這多出了的一天放到二月份,所以閏年的二月份有29天,這一天也叫閏日,這一年共有366日,就是閏年。但四年增加一日比四個回歸年又多0.0312日,400年后將多3.12日,故在400年中少設3個閏年,也就是在400年中只設97個閏年,這樣公歷年的平均長度與回歸年就相近似了。由此規(guī)定:年份是整百數(shù)的必須是400的倍數(shù)才是閏年,例如1900年、2100年就不是閏年。

也就我們居住的地球總是繞著太陽旋轉的。地球繞太陽轉一圈需要365天5時48分46秒,也就是365.2422天。為了方便,一年定為365天,叫做平年;這樣每過四年差不多就要多出一天來,把這一天加在2月里,這一年就有366天,叫做閏年。 
通常,每四年里有三個平年一個閏年。公歷年份是4的倍數(shù)的,一般都是閏年。

按照每四年一個閏年計算,平均每年就要多算出0.0078天,這樣經(jīng)過四百年就會多算出大約3天來,因此,每四百年中要減少三個閏年。所以規(guī)定,公歷年份是整百數(shù)的,必須是400的倍數(shù)的才是閏年,不是400的倍數(shù)的就是平年。

也就是我們通常所說的: 
四年一閏,百年不閏,四百年再閏。

二:數(shù)學中計算閏年的方法
一般的在數(shù)學運算中,或者在公歷紀年法中,能被4整除的大多是閏年,除了那些能被100整除而不能被400整除的年份以外。

①非世紀年能被4整除,且不能被100整除的是閏年。(如2004年是閏年,1901年不是閏年)
②世紀年能被400整除的是閏年。(如2000年少閏年,1900年不是閏年)


三:閏年的差值計算 
現(xiàn)時的公歷以回歸年為“年”的計算基礎,而一個回歸年大約等于365.24220日。因為在平年公歷只計算365日,結果四年后便會累積0.24220×4=0.9688日,大約等于一日,所以便逢四年增加一日閏日以抵銷這0.9688日。但是還是稍微的少了點,這樣一時沒有多少時間,可是到了一個百年時就會相差了大約0.78天,即多加了。所以要再次規(guī)定細節(jié),到100年是不在加,這樣又會每100年的時間少了0.22天,到了400年時,差了大約0.9天了,所以那個百年是要再加上潤日才可以基本對應的。但是這樣仍然會有些許的誤差,但是已經(jīng)相當?shù)男×?。我只是大致進行了計算,實際的是相差很小很小的,微乎其微的,但是日積月累卻可以百年出“日”的不起眼的小數(shù)上。下面就讓每我們一起來計算一下這個差值:
使用實際時間計算:
一個回歸年大約是:365日5時48分46秒,我們把不足一天的時間轉換成秒數(shù):5×3600+48×60+46=20926秒
而一天的秒數(shù)是:24×3600=86400秒
我們通常計算的是以400年為一個循環(huán),也就是前面所說的:四年一閏,百年不閏,四百年再閏。
那么400年的時間總共天數(shù)和多出的秒數(shù):天數(shù):365×400=146000天,多余秒數(shù):20926×400=8370400秒,
把多出來的秒數(shù)轉換成天時分秒的形式:96天21小時6分40秒
然后把這個秒數(shù)轉換成天的小數(shù):8370400/3600/24=96.87962963
數(shù)學計算中常用的數(shù)值:
我們通常在數(shù)值計算中用到一個回歸年是365.2422天
那么400年的時間是多少呢?應該是365.2422×400,我們把這個計算式分解下,365×400+0.2422*400,其中365×400和前面的一樣,我們這里就不再次計算,我們只算0.2422*400=96.88天
這個96.88天數(shù)減去實際天數(shù)96.87962963:96.88-96.87962963=0.00037037天
而0.00037037天轉換成秒:0.00037037×24×3600=31.999968秒,大約是32秒
驗證是否相差32秒:
把96.88天的0.88天轉換成秒數(shù):0.88×86400=76032
把76032秒轉換成天時分秒的形式:96天21小時7分12秒

結論:
通過以上數(shù)據(jù)的計算,我們可以看出每年以365.2422天計算400年為周期,和實際直接的差值是32秒,也就是400年有32秒的誤差。
但是我們實際計算400年都是按97個潤計算,也就是97天 - 96天21小時6分40秒=2小時53分20秒的誤差。
可能有人會問了,時間長了也是有誤差的???你說的對,咱們來計算一下誤差一天要經(jīng)過多少年:每天的秒數(shù)是86400,除以32,然后再乘以400:86400/32*400=108000年,也就是要經(jīng)過100多萬年會多出1天的誤差,在時間的長河中,人的有生之年相對于108萬年有這樣的誤差存在已經(jīng)是微乎其微了,可以忽略不計了。就算以2小時53分20秒的誤差計算:400*86400/(2*3600+53*60+20)=3323.077年,也需要經(jīng)過3000多年的時間會多出一天的時間誤差。
具體使用那個數(shù)值?需要精確度到多少?,使用哪一個數(shù)值取決于你自己了,我這里只是告訴你各個數(shù)值之間的誤差。
聲明:當然我這里的計算也是有誤差的,我這里只精確到秒。


閏年計算

1.能被4整除而不能被100整除.(如2004年就是閏年,1900年不是)

2.能被400整除.(如2000年是閏年)

算法

 public boolean isLeapYear(long year) {
        return ((year & 3) == 0) && ((year % 100) != 0 || (year % 400) == 0);
    }

解析

表達式(a&3)==(a%4)的值是1

因為無論a的值為多少a&3的結果只保留a的最后2位

如a的值為17,它變?yōu)槎M制為10001,而3為00011,它們相與的結果只有a的1和2位數(shù)字保留下來也就是01,因為與1相與就保留原數(shù)據(jù),與0相與就變0 如 a&1=a a&0=0

而a%4也是保留a的最后2位,因為只有最后2位的值為3,小于4,其它都>4

--------------------- 

判斷閏年的巧妙算法

package cn.huhui.demoTest;
import java.util.Calendar;
public class Test1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
/*
* 高級算法:調用Calendar類的方法 判斷3月1日 
* 向前偏移一天
*/
Calendar c =Calendar.getInstance();
c.set(1900, 2, 1);
c.add(Calendar.DAY_OF_MONTH, -1);
int day=c.get(Calendar.DAY_OF_MONTH);
System.out.println(day);
}
}


Java算法——判斷某一年是否是閏年

閏年的判定規(guī)則是:


如果該年能被4整除且不能被100整除,或者能被400整除,則該年是閏年,否則不是

import java.util.Scanner;
public class LeapYear {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("請輸入一個年份:");
long year = scan.nextLong();
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
System.out.println(year + "年是閏年!");
} else {
System.out.println(year + "年是平年!");
}
}
}


如對本文有疑問,請?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會為你解答!! 點擊進入論壇

發(fā)表評論 (1202人查看,0條評論)
請自覺遵守互聯(lián)網(wǎng)相關的政策法規(guī),嚴禁發(fā)布色情、暴力、反動的言論。
昵稱:
最新評論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學習

業(yè)務咨詢

· 技術支持
· 服務時間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權所有 鄂ICP備17013400號