VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2007/03/20(Tue) 13:32
投稿者魔界の仮面弁士
Eメール
URL
タイトルRe^5: 和暦の入力チェック

> それと、明治の最初はよくわかりません。
以前調べた時の覚書によると、「明治」という和暦は下記のような仕様だそうです。

・グレゴリオ暦でいうと、1868年1月25日〜1912年7月30日に相当する期間である。
・和暦表現上は、「明治元年1月1日」〜「明治45年7月30日」とされる。
・明治6年の旧暦(天保壬寅元暦)から新暦(グレゴリオ暦)への変更ゆえ、
 新暦「明治6年1月1日」(グレゴリオ暦:1873年1月1日)の『前日』は、
 旧暦「明治5年12月2日」(グレゴリオ暦:1872年12月31日)となっているため、
 明治5年12月3日〜明治5年12月31日という日付は、実際には存在しない。
・ただし、新暦採用後も旧暦で記録された資料や、あるいは、それ以前の日付を
 新暦相当の日付に換算して表現される場合もあるので、その場合に限っては、
 明治5年12月3日などの日付表現が限定的に使用される可能性がある。
・最大日付である「明治45年7月30日」は、次の元号の最小日付である
 「大正元年7月30日」と被る日付となる。
・明治の改元日は慶應4年9月8日(グレゴリオ暦:1868年10月23日)であるが、
 同年1月1日まで遡って適用されたため、この期間は、前の元号<慶應>と
 被る日付となる。

……という、何ともややこしい仕様になっているようでしたよ。(^_^;

結局、旧暦・新暦の違いや、遡って適用された期間などがあるので、処理系によって、
「明治の開始日」というものが微妙に異なるので、結構ややこしい。
明治初期の日付を扱う必要が無いのであれば、あえて取り組む必要は無いかも知れません。

--------
改元日を基準にして設定された処理系では、開始日はグレゴリオ暦1868年10月23日とされます。
これは和暦表現で、「明治元年9月8日(旧暦)」「明治元年10月23日(新暦)」に相当します。
--------
法的な適用日を基準にするのであれば、開始日はグレゴリオ暦1868年1月25日です。
和暦表現でいうと、「明治元年1月1日(旧暦)」「明治元年1月25日(新暦)」に相当します。
ただしこの場合は、新暦表現されることは稀で、グレゴリオ暦または旧暦表現が一般的です。
--------
旧暦と新暦を区別して扱う事ができない処理系においては、日本でグレゴリオ暦が
採用された日付を取って、グレゴリオ暦1873年1月1日を開始日とする場合もあります。
和暦表現上は、新暦の「明治6年1月1日」です。
--------
月日を無視し、年だけで判断する処理系においては、グレゴリオ暦1868年1月1日を
開始日とする処理系も稀に見られます。
この場合、開始日の和暦表現は無意味ですが、あえて表現すると旧暦「慶応3年12月7日」です。
--------

ちなみに VB6 には、旧暦換算用の機能が用意されていないため、Format関数 での処理結果は、
常に新暦(グレゴリオ暦)の日付として出力されることになります。

# VB2005 であれば、旧暦処理クラス(JapaneseLunisolarCalendar)や
# 和暦処理クラス(JapaneseCalendar)が使えるのですけれどね。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -