Linux

1970年1月1日は、紀元後何日目?

2006年4月13日

MySQL で使える関数の一つに、次の物がある。

FROM_DAYS(N)

指定された日数 N に対して DATE 型の値を返す。

この関数と、Unix timestamp の関連はどうなっているかというと、

SELECT FROM_DAYS(719528);

というクエリーが

1970-01-01

を返す。このことから、表題の質問の答えは、719528 日目ということになる。
 いいのかな?この結論で。一応検算しておこう。一年365日で、閏年では366日。100年に一度閏年が無くなるが、これは確か400年に一度キャンセルされる。したがって、紀元後1年から紀元後399年12月31日までは、閏年が 24*4+1=97 回。閏年で無い年が、400-97=303回。従って、この400年が何日に相当するかというと、

97*366+303*365=146097 (日)

だから、紀元後1年から、紀元後1599年12月31日までは、

146097*4=584388(日)

紀元後1600年から1899年12月31日までは、

(24*366+76*365)*3=109572(日)

1900年から1969年12月31日までは、閏年が17回有るので、

17*366+53*365=25567(日)

従って、紀元後1年1月1日から、1969年12月31日までは、

584388+109572+25567=719527(日)

で、次の日1970年1月1日は719528日目である。

コメント

コメントはありません

コメント送信