指定した新暦日付に対する旧暦日付と六曜(大安・仏滅‥‥)を返します。
『#VALUE!』
kt旧暦( 新暦, [対象], [編集] )
返却値 ‥‥‥ Variant (String ) 型 新 暦 ‥‥‥ Variant (Date/String ) 型 対 象 ‥‥‥ String 型 (省略可、既定値: "dr" ) 編 集 ‥‥‥ String 型 (省略可、既定値: "md1" )
「対象」の指定によって、旧暦日付と六曜を文字列で返します。
対象/編集の指定によって、下記のような結果で返ります。
2001/6/1 → dr/ymd1 2001/閏4/10(先勝) dr/md1 閏4/10(先勝) d/ymd1 2001/閏4/10 r 先勝
パラメータ指定が不正の場合は[#VALUE!]が返ります。
新 暦 ‥‥‥ 旧暦/六曜を求める日付を、シリアル値または日付文字列で指定します(指定できる期間は1950〜2050年です)。
※ 新元号「令和」対応になっていない環境でも
「令和 日付文字列(元年 表記を含む)」を指定可能です。
対 象 ‥‥‥ 旧暦日付と六曜のどちらを求めるか指定します(大文字でも可)。
dr → 旧暦 & 六曜
d → 旧暦のみ
r → 六曜のみ
編 集 ‥‥‥ 旧暦を求める場合に日付文字列の編集形式を指定します。
対象="r" の場合には指定不要です(大文字でも可)。
md1 :m/d md2 :m月d日
ymd1:yyyy/m/d ymd2:yyyy年m月d日
※ 閏月の場合には、[m]の前に"閏"が付きます。
旧暦には「2月30日」という日付も存在します。また閏月の場合には月の前に”閏”という
文字が付きます。したがって、この関数で得られる結果を日付データ(シリアル値)として
加工/編集する事は出来ません。
『六曜』は「先勝・友引・先負・仏滅・大安・赤口」の6種が循環して割当てられるものですが、
旧暦日付の【月の1日】ごとに下記のように開始値が決まっています。
1/ 7月:先勝 2/ 8月:友引 3/ 9月:先負
4/10月:仏滅 5/11月:大安 6/12月:赤口
-----------------------------------------------------------------------
この『kt旧暦』で求まるのは日本標準時を基にしたものです。したがって、中国および韓国
での行事などを求めるのに使用しないで下さい。年によっては【1日のズレ】が出る場合があ
ります(例:旧暦2001年4月)。
旧暦は【新月になった瞬間の日】を『月の1日』としていますが、日本と中国では1時間の時
差がありますので、日本時で『0時〜1時』の間に【新月】を迎える場合には、中国では『未だ
前日』です。
したがって、この場合には『旧暦月の1日』に対応する新暦の日付には、日本と中国で【1日
のズレ】が発生します(旧暦2001年4月1日は、日本では新暦4月24日、中国では新暦4月23日)。
また、これによって当然「六曜」も違ってきます。新暦2001年5月6日(日)の六曜は、日本時に
基づく旧暦では【仏滅】、中国時に基づく旧暦では【大安】になります。
(こよみのページというHPの『暦と天文の雑学』というコラムに詳しい話が紹介されています)
韓国は日本との時差は無いそうですが、現在は中国の旧暦に基づいたものを使用している
そうですので、やはり日本とは【ズレる】場合があります。
kt旧暦("2001/6/1", "dr", "ymd1") → 2001/閏4/10(先勝)
kt旧暦("2001/6/1", "dr", "md1" ) → 閏4/10(先勝)
kt旧暦("2001/6/1", "d", "ymd1") → 2001/閏4/10
kt旧暦("2001/6/1", "r") → 先勝
kt旧暦("2001/6/1", "dr", "ymd2") → 2001年閏4月10日(先勝)
kt旧暦("2001/6/1", "dr", "md2" ) → 閏4月10日(先勝)
kt旧暦("2001/6/1", "d", "ymd2") → 2001年閏4月10日