今のところ YAYA 専用 SAORI「koyomi.dll」 ※aya5.dll では動きません。その他は確かめていないので知りません。 【概要】 日の出時刻をもとめたり、月齢をもとめたり、旧暦の日付をもとめたり、不定時法の時刻をもとめたり。 【使い方の例】 _lon = 135.0 // 経度。東経なら正。 _lat = 35.0 // 緯度。北緯なら正。 _alt = 5.0 // 標高(メートル)。 _result = FUNCTIONEX("koyomi.dll", "instant", _lon, _lat, _alt, year, month, day, hour, minute, second) _str = '\0\s[0]現在の月齢は、\w5' + valueex5 + 'です。\e' 【経度・緯度について】 経度は、東経であれば正、西経であれば負を指定し、 緯度は、北緯であれば正、南緯であれば負を指定してください。 また、両方とも六十進記数法ではなく、十進法で表します。 例) 35°30' = 35.50(正しい) 35°30' = 35.30(間違い) 35°15' = 35.25(正しい) 35°15' = 35.15(間違い) 35°20' = 35.333333333... (正しい) 35°20' = 35.20(間違い) 【任意の一日の情報をもとめる】 (入力値) Argument0: day[CRLF] Argument1: (経度)[CRLF] // 経度。東経なら正。 Argument2: (緯度)[CRLF] // 緯度。北緯なら正。 Argument3: (標高)[CRLF] // 標高(メートル)。 Argument4: (年)[CRLF] // 2000〜2030 Argument5: (月)[CRLF] // 1〜12 Argument6: (日)[CRLF] // 1〜31 (返り値) Result: ("2007/05/05(土) こどもの日" のような文字列)[CRLF] Value0: (市民薄明開始時刻の時間)[CRLF] // 該当がなければ -1 Value1: (市民薄明開始時刻の分)[CRLF] // 該当がなければ -1 Value2: (市民薄明開始時の方位)[CRLF] // 該当がなければ -1 Value3: (日の出時刻の時間)[CRLF] // 該当がなければ -1 Value4: (日の出時刻の分)[CRLF] // 該当がなければ -1 Value5: (日の出時の方位)[CRLF] // 該当がなければ -1 Value6: (南中時刻の時間)[CRLF] // 該当がなければ -1 Value7: (南中時刻の分)[CRLF] // 該当がなければ -1 Value8: (南中時の高度)[CRLF] // 該当がなければ -1 Value9: (日の入り時刻の時間)[CRLF] // 該当がなければ -1 Value10: (日の入り時刻の分)[CRLF] // 該当がなければ -1 Value11: (日の入り時の方位)[CRLF] // 該当がなければ -1 Value12: (市民薄明終了時刻の時間)[CRLF] // 該当がなければ -1 Value13: (市民薄明終了時刻の分)[CRLF] // 該当がなければ -1 Value14: (市民薄明終了時の方位)[CRLF] // 該当がなければ -1 Value15: (月の出時刻の時間)[CRLF] // 該当がなければ -1 Value16: (月の出時刻の分)[CRLF] // 該当がなければ -1 Value17: (月の出時の方位)[CRLF] // 該当がなければ -1 Value18: (月の入り時刻の時間)[CRLF] // 該当がなければ -1 Value19: (月の入り時刻の分)[CRLF] // 該当がなければ -1 Value20: (月の入り時の方位)[CRLF] // 該当がなければ -1 Value21: (正午の月齢)[CRLF] Value22: (修正ユリウス通日)[CRLF] 【任意の瞬間の情報をもとめる】 (入力値) Argument0: instant[CRLF] Argument1: (経度)[CRLF] // 経度。東経なら正。 Argument2: (緯度)[CRLF] // 緯度。北緯なら正。 Argument3: (標高)[CRLF] // 標高(メートル)。 Argument4: (年)[CRLF] // 2000〜2030 Argument5: (月)[CRLF] // 1〜12 Argument6: (日)[CRLF] // 1〜31 Argument7: (時間)[CRLF] // 0〜23 Argument8: (分)[CRLF] // 0〜59 Argument9: (秒)[CRLF] // 0〜59 (返り値) Result: ("2007/03/08(木) 18:19:20" のような文字列)[CRLF] Argument0: (地方恒星時)[CRLF] Argument1: (太陽高度)[CRLF] Argument2: (太陽方位)[CRLF] Argument3: (太陽が出ているかどうか)[CRLF] // 出ていれば 1、そうでなければ 0 Argument4: (月が出ているかどうか)[CRLF] // 出ていれば 1、そうでなければ 0 Argument5: (月齢)[CRLF] Argument6: (月相)[CRLF] // 0〜28 Argument7: (月相もどき)[CRLF] // 0°〜360° Argument8: (直前の新月の年)[CRLF] Argument9: (直前の新月の月)[CRLF] Argument10: (直前の新月の日)[CRLF] Argument11: (直前の新月の時間)[CRLF] Argument12: (直前の新月の分)[CRLF] Argument13: (直前の新月の秒)[CRLF] Argument14: (直前の満月の年)[CRLF] Argument15: (直前の満月の月)[CRLF] Argument16: (直前の満月の日)[CRLF] Argument17: (直前の満月の時間)[CRLF] Argument18: (直前の満月の分)[CRLF] Argument19: (直前の満月の秒)[CRLF] Argument20: (次の新月の年)[CRLF] Argument21: (次の新月の月)[CRLF] Argument22: (次の新月の日)[CRLF] Argument23: (次の新月の時間)[CRLF] Argument24: (次の新月の分)[CRLF] Argument25: (次の新月の秒)[CRLF] Argument26: (次の満月の年)[CRLF] Argument27: (次の満月の月)[CRLF] Argument28: (次の満月の日)[CRLF] Argument29: (次の満月の時間)[CRLF] Argument30: (次の満月の分)[CRLF] Argument31: (次の満月の秒)[CRLF] 【旧暦の取り扱いについて】 旧暦はタイムゾーン+9時間限定です。それ以外の場合はエラーとなります。 koyomi.dll では、現在日本で最も一般的であろうと推測する暦法(天文学に基づいて月相と太陽横経をもとめ、それを天保暦の月名決定方法に従って一ヶ月を割り当てる)に従ってこよみを決定しています。当然ですが、これは日本のみで用いられているもので、中国・朝鮮半島のものとは異なります。 年の干支は、旧暦の正月から次の正月までを一年として割り当てました。 月の干支は、旧暦の一日から翌月までを一ヶ月として割り当てました。 年の干支、月の干支ともに、節月を基準に割り当てる方法もあるようですが、資料が見つからなかったため koyomi.dll では不採用としました。 【任意の一日の旧暦の日付をもとめる】 ※この動作は比較的挙動が軽いですが、二十四節気、雑節等をもとめることができません。 (入力値) Argument0: kyuureki_lite[CRLF] Argument1: (年)[CRLF] // 2000〜2030(グレゴリオ暦) Argument2: (月)[CRLF] // 1〜12(グレゴリオ暦) Argument3: (日)[CRLF] // 1〜31(グレゴリオ暦) (返り値) Result: ("閏3月23日" のような文字列)[CRLF] Argument0: (グレゴリオ暦の年)[CRLF] Argument1: (グレゴリオ暦の月)[CRLF] Argument2: (グレゴリオ暦の日)[CRLF] Argument3: (修正ユリウス通日)[CRLF] Argument4: (閏月かどうか)[CRLF] // 閏月であれば 1、そうでなければ 0 Argument5: (旧暦の月)[CRLF] // 1〜12 Argument6: (旧暦の日)[CRLF] // 1〜31 Argument7: (六曜)[CRLF] // 「大安」とか「仏滅」とか「友引」とか… Argument8: (年の干支)[CRLF] Argument9: (月の干支)[CRLF] Argument10: (日の干支)[CRLF] Argument11: (月齢(正午))[CRLF] Argument12: (太陽横経(正午))[CRLF] 【任意の一日の旧暦の日付をもとめる】 ※二十四節気、雑節等をもとめることができますが、挙動が比較的重いです。 (入力値) Argument0: kyuureki_heavy[CRLF] Argument1: (年)[CRLF] // 2000〜2030(グレゴリオ暦) Argument2: (月)[CRLF] // 1〜12(グレゴリオ暦) Argument3: (日)[CRLF] // 1〜31(グレゴリオ暦) (返り値) Result: ("閏3月23日" のような文字列)[CRLF] Argument0: (グレゴリオ暦の年)[CRLF] Argument1: (グレゴリオ暦の月)[CRLF] Argument2: (グレゴリオ暦の日)[CRLF] Argument3: (修正ユリウス通日)[CRLF] Argument4: (閏月かどうか)[CRLF] // 閏月であれば 1、そうでなければ 0 Argument5: (旧暦の月)[CRLF] // 1〜12 Argument6: (旧暦の日)[CRLF] // 1〜31 Argument7: (六曜)[CRLF] // 「大安」とか「仏滅」とか「友引」とか… Argument8: (年の干支)[CRLF] Argument9: (月の干支)[CRLF] Argument10: (日の干支)[CRLF] Argument11: (月齢(正午))[CRLF] Argument12: (太陽横経(正午))[CRLF] Argument13: (二十四節気・雑節等)[CRLF] // 「春分」とか「立春」とか「七夕」とか。何も無ければ長さ 0 の文字列。 尚、表示可能なイベントは次の通りです。 ・節分(冬〜春) ・立春 ・八十八夜 ・二百十日 ・二百二十日 ・雨水 ・啓蟄 ・春分 ・彼岸(春) ・社日(春社) ・清明 ・穀雨 ・節分(春〜夏) ・立夏 ・小満 ・芒種 ・入梅 ・夏至 ・半夏生 ・小暑 ・大暑 ・節分(夏〜秋) ・立秋 ・処暑 ・白露 ・秋分 ・彼岸 ・社日(秋社) ・寒露 ・霜降 ・節分(秋〜冬) ・立冬 ・小雪 ・大雪 ・冬至 ・小寒 ・大寒 ・土用(春) ・土用の丑の日(春) ・土用(夏) ・土用の丑の日(夏) ・土用(秋) ・土用の丑の日(秋) ・土用(冬) ・土用の丑の日(冬) ・正月 ・大晦日(グレゴリオ暦暦) ・大祓(グレゴリオ暦) ・旧正月 ・大晦日 ・大祓 ・人日(七草) ・小正月 ・上元 ・上巳(桃の節句) ・端午(端午の節句・菖蒲の節句) ・中元 ・盂蘭盆 ・重陽(菊の節句) ・下元 ・初午 ・旧盆 ・大祓 ・大祓(グレゴリオ暦) ・七夕 ・七夕(グレゴリオ暦) ・十五夜 ・十三夜 【不定時法に基づく時刻を表示する】 寛政暦(1797年〜)に従い、太陽が高度-7度21分40秒の位置にあるときを夜明け・日暮れとして計算しています。 よって、太陽が常に-7度21分40秒よりも上に位置している、または、常に-7度21分40秒を上回らない場合はエラーとなります。 (入力値) Argument0: futeijihou[CRLF] Argument1: (経度)[CRLF] // 経度。東経なら正。 Argument2: (緯度)[CRLF] // 緯度。北緯なら正。 Argument3: (標高)[CRLF] // 標高(メートル)。 Argument4: (年)[CRLF] // 2000〜2030 Argument5: (月)[CRLF] // 1〜12 Argument6: (日)[CRLF] // 1〜31 Argument7: (時間)[CRLF] // 0〜23 Argument8: (分)[CRLF] // 0〜59 Argument9: (秒)[CRLF] // 0〜59 (返り値) Result: ("子の刻" のような文字列)[CRLF] Argument0: (子の刻の正刻の時間)[CRLF] // 初刻ではなく正刻である点に注意。 Argument1: (子の刻の正刻の分)[CRLF] // 初刻ではなく正刻である点に注意。 Argument2: (丑の刻の正刻の時間)[CRLF] // 初刻ではなく正刻である点に注意。 Argument3: (丑の刻の正刻の分)[CRLF] // 初刻ではなく正刻である点に注意。 Argument4: (寅の刻の正刻の時間)[CRLF] // 初刻ではなく正刻である点に注意。 Argument5: (寅の刻の正刻の分)[CRLF] // 初刻ではなく正刻である点に注意。 Argument6: (卯の刻の正刻の時間)[CRLF] // 初刻ではなく正刻である点に注意。 Argument7: (卯の刻の正刻の分)[CRLF] // 初刻ではなく正刻である点に注意。 Argument8: (辰の刻の正刻の時間)[CRLF] // 初刻ではなく正刻である点に注意。 Argument9: (辰の刻の正刻の分)[CRLF] // 初刻ではなく正刻である点に注意。 Argument10: (巳の刻の正刻の時間)[CRLF] // 初刻ではなく正刻である点に注意。 Argument11: (巳の刻の正刻の分)[CRLF] // 初刻ではなく正刻である点に注意。 Argument12: (午の刻の正刻の時間)[CRLF] // 初刻ではなく正刻である点に注意。 Argument13: (午の刻の正刻の分)[CRLF] // 初刻ではなく正刻である点に注意。 Argument14: (未の刻の正刻の時間)[CRLF] // 初刻ではなく正刻である点に注意。 Argument15: (未の刻の正刻の分)[CRLF] // 初刻ではなく正刻である点に注意。 Argument16: (申の刻の正刻の時間)[CRLF] // 初刻ではなく正刻である点に注意。 Argument17: (申の刻の正刻の分)[CRLF] // 初刻ではなく正刻である点に注意。 Argument18: (酉の刻の正刻の時間)[CRLF] // 初刻ではなく正刻である点に注意。 Argument19: (酉の刻の正刻の分)[CRLF] // 初刻ではなく正刻である点に注意。 Argument20: (戌の刻の正刻の時間)[CRLF] // 初刻ではなく正刻である点に注意。 Argument21: (戌の刻の正刻の分)[CRLF] // 初刻ではなく正刻である点に注意。 Argument22: (亥の刻の正刻の時間)[CRLF] // 初刻ではなく正刻である点に注意。 Argument23: (亥の刻の正刻の分)[CRLF] // 初刻ではなく正刻である点に注意。 Argument24: (数呼びによる時刻名)[CRLF] // "八つ時"のような文字列 Argument25: (時刻を角度で表したもの)[CRLF] 「時刻を角度で表したもの」について 一日を360°で表した場合、指定された時刻が何°になるかを示したものです。例えば次のようになります。 子の刻正刻(一日の始まり) 0° 明け六つ(夜明け) 90° 正午 180° 暮れ六つ(日暮れ) 270° 「初刻」と「正刻」について 例えば、11:00〜12:59が午の刻である場合、11:00〜が午の刻の「初刻」、12:00〜が午の刻の「正刻」となります。 11:00 午の刻(初刻) |    | 11:30   | |    | 12:00 午の刻(正刻) |    | 12:30   | |    | 13:00 未の刻(初刻) 特定の瞬間を指して「午の刻」と言う場合、「午の刻の初刻」を指す場合は殆ど存在しません。大抵は「午の刻の正刻」を指します。(また、「午の刻の正刻」ということで「正午」という言葉生まれました。) 「数呼びによる時刻名」について 「数呼び」とは江戸時代に用いられていた別の時刻名です。数呼びと十二支を用いた時刻名との対応表は次の通りです。 子の刻→九つ 丑の刻→八つ 寅の刻→七つ 卯の刻→六つ(いわゆる「明け六つ」。夜明け) 辰の刻→五つ 巳の刻→四つ 午の刻→九つ 未の刻→八つ(いわゆる「おやつ」。午後の休憩の時間) 申の刻→七つ 酉の刻→六つ(いわゆる「暮れ六つ」。日暮れ) 戌の刻→五つ 亥の刻→四つ 「丑三つ時」について 上記の時刻名だと、一区切りが二時間前後となり、実際に運用する上で不便が生じます。そこでそれをさらに四つに分ける方法が用いられるようになりました。 例えば、丑の刻が01:00〜02:59である場合、次の通りになります。 01:00 丑の刻(初刻) 丑の刻一つ |    |      | 01:30   |     丑の刻二つ |    |      | 02:00 丑の刻(正刻) 丑の刻三つ(いわゆる「草木も眠る丑三つ時」) |    |      | 02:30   |     丑の刻四つ |    |      | 03:00 寅の刻(初刻) 寅の刻一つ よって、「丑の刻正刻」=「草木も眠る丑三つ時」となります。 【参考】 (「日の出・日の入りの計算」長沢工 著、地人書館(2001年)) http://www.amazon.co.jp/dp/4805206349 (こよみのページ) http://koyomi.vis.ne.jp/ (旧暦をつくろう) http://www.sci-museum.kita.osaka.jp/~kazu/kyureki/kyureki.html (六曜‐WikiPedia) http://ja.wikipedia.org/wiki/%E5%85%AD%E6%9B%9C (干支‐WikiPedia) http://ja.wikipedia.org/wiki/%E5%B9%B2%E6%94%AF (二十四節気‐WikiPedia) http://ja.wikipedia.org/wiki/%E4%BA%8C%E5%8D%81%E5%9B%9B%E7%AF%80%E6%B0%97 (節句‐WikiPedia) http://ja.wikipedia.org/wiki/%E7%AF%80%E5%8F%A5 (雑節‐WikiPedia) http://ja.wikipedia.org/wiki/%E9%9B%91%E7%AF%80 (時計の雑学) http://www.geocities.jp/afi_651/japantime2.html (江戸の時制について) http://homepage2.nifty.com/fusehime/no54.htm (和時計の暮らし) http://ammo.jp/monthly/0211/02.html 2007-03-29 書いた人:ししゃも屋(capelin@shishamo.net) これを書いた人は天文学、占い、暦法について完全なド素人です。間違いを発見された方は、恐れ入りますがメールにてご指摘ください。 また、明らかに間違った数値が算出されている場合は、経度、緯度、標高、PC に設定されているタイムゾーン、変な数値が出た時刻をご記入の上、大変お手数ですがメールにてお知らせください。