師匠の散歩

きままにPerlでも

getTimeLocal

ローカルエポック秒 / エポック秒を理解し、内部関数を一切使わずに関数化する/ getTimeLocal.cgi

自前の計算式getTimeLocal2.cgiでもエポック秒を求めたが、 ユリウス日を求める計算式を利用してエポック秒を求める
目標 = getTimeLocal(0,0,0,1,0,70) = getTimeLocal2(0,0,0,1,0,70) = 1970/1/1 0:0:0 のエポック秒 => - 60*60*9 = - 32400

年月日を入力してください。


ボタンを押すと実行します
訪問された時刻です


ボタンを押すと実行します

結果

注意事項
ここでは、ユリウス日の計算には、「wikiユリウス通日」に記載のフリーゲルの式を採用して計算した

ユリウス日*86400とエポック秒が定数の違いになることを利用し、エポック秒をユリウス日の計算式から求める。表を使わないため、自前の計算式 getTimeLocal2() よりも見栄えが良くなったと考える。なお、タイムゾーンの変更は、定数項を変更することで可能である。

紀元前1年をプログラム上は0年と置くことで、紀元前もユリウス日を計算することができる。よって、本計算式はグレゴリオ暦で記述する紀元前についてもエポック秒を求めることができる。

スクリプト(抜粋)

getTimeLocal.cgi // Topに戻る // indexに戻る
Copyright(C) 2009-2021 Grandmaster Last up : 2020/09/18