"qreki.pl"を使ってみるかな
"qreki.pl"を使ってみるかな
- AWK版旧暦計算スクリプト(高野英明氏)
- JavaScript版旧暦計算スクリプト(長野 隆氏)
上記を基に作られた「旧暦計算ライブラリ(Perlによる旧暦計算プログラム)」から"qreki.pl"。
パッケージ名
"qreki"
組み込まれているサブルーチン名
get_rokuyou 六曜算出関数 calc_kyureki 新暦に対応する、旧暦を求める calc_chu 中気の時刻を求める before_nibun 直前の二分二至の時刻を求める calc_saku 朔の計算 NORMALIZATION_ANGLE 角度の正規化を行う(引数の範囲を 0≦θ<360) LONGITUDE_SUN 太陽の黄経 λsun を計算する LONGITUDE_MOON 月の黄経 λmoon を計算する YMDT2JD 年月日、時分秒(世界時)からユリウス日(JD)を計算する JD2YMDT ユリウス日(JD)から年月日、時分秒(世界時)を計算する check_24sekki 今日が24節気かどうか調べる
vb版にはあった十干がないように思うのだが?
ざっと目を通したのだが,末尾に"1;"がないので気休めに入れておいた。実際には,文中で"$PI"などの設定があるので無くても稼動するみたいだ。
メモ程度だが,自己のための備忘録としてもすこし書いておくことにする。で,ところどころスクリプト中から引用させていただきました。
宣言
同一フォルダーにあるとしての例。
require './qreki.pl';
get_rokuyou
六曜算出関数
$ret = &qreki'get_rokuyou($year,$mon,$day);
引数
$year,$mon,$dayは,現行の西暦から与える。年部は4桁。
戻値
0〜5の値を持ち,各々「0:大安 1:赤口 2:先勝 3:友引 4:先負 5:仏滅」となるので,次のようなテーブルを用意しておくことにした。
@rokuyou=("大安","赤口","先勝","友引","先負","仏滅");
calc_kyureki
新暦に対応する、旧暦を求める
($Qyaer,$uruu,$Qmon,$Qday) = &qreki'calc_kyureki($year,$mon,$day);
引数
$year,$mon,$dayは,現行の西暦から与える。年部は4桁。
戻値
$Qyear,$Qmon,$Qdayは,各々旧暦の年月日で,$uruuに「0:平月 1:閏月」
calc_chu
中気の時刻を求める
&qreki'calc_chu
; 理解できないので,パス (^^;)
before_nibun
直前の二分二至の時刻を求める
&qreki'before_nibun
; 理解できないので,パス (^^;)
calc_saku
朔の計算
&qreki'calc_saku
; 理解できないので,パス (^^;)
NORMALIZATION_ANGLE
角度の正規化を行う(引数の範囲を 0≦θ<360)
&qreki'NORMALIZATION_ANGLE
; 理解できないので,パス (^^;)
LONGITUDE_SUN
太陽の黄経 λsun を計算する
&qreki'LONGITUDE_SUN
; 理解できないので,パス (^^;)
LONGITUDE_MOON
月の黄経 λmoon を計算する
&qreki'LONGITUDE_MOON
; 理解できないので,パス (^^;)
YMDT2JD
年月日、時分秒(世界時)からユリウス日(JD)を計算する
&qreki'YMDT2JD
; 理解できないので,パス (^^;)
JD2YMDT
ユリウス日(JD)から年月日、時分秒(世界時)を計算する
&qreki'JD2YMDT
; 理解できないので,パス (^^;)
check_24sekki
今日が24節気かどうか調べる
$ret = &qreki'check_24sekki($year,$mon,$day);
引数
$year,$mon,$dayは,現行の西暦から与える。年部は4桁。
戻値
文字列の形で二十四節気の名称が入ってくる。なんでもない時はヌルストリング。
以上,泰司.のメモ(随時書き換えあり)
[yssh06]
☆ < wiki_roots
Today: 7 / Yesterday: 8