C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: 和暦年月日の厳密な存在チェック


(過去ログ 59 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■33890 / inTopicNo.1)  和暦年月日の厳密な存在チェック
  
□投稿者/ やも (1回)-(2009/03/12(Thu) 16:32:31)

分類:[.NET 全般] 

こんにちわ。やもと申します。

タイトル:和暦年月日の厳密な存在チェックに関して

例えば、平成の施行日は1月8日なので・・・
 入力
  平成1年1月8日 →OK
  平成1年1月7日 →NG

と判定したいと考えています。

JapaneseCalenderに和暦情報(元号、年、月、日)を設定してそこから西暦情報が取得できる(=存在する)か?
という方法を試してみたのですが、結果「平成1年1月7日」は「1989/1/7」が取得できてしまいました。

※範囲は明治、大正、昭和、平成です。

良い方法があればお教え頂ければと思います。
よろしくお願いします。

引用返信 編集キー/
■33891 / inTopicNo.2)  Re[1]: 和暦年月日の厳密な存在チェック
□投稿者/ .SHO (748回)-(2009/03/12(Thu) 16:47:24)
No33890 (やも さん) に返信

自分で判断するコード書けばいいのでは?

明治と大正
大正と昭和
昭和と平成

の3回チェックするだけ。

引用返信 編集キー/
■33892 / inTopicNo.3)  Re[1]: 和暦年月日の厳密な存在チェック
□投稿者/ επιστημη (1823回)-(2009/03/12(Thu) 16:52:40)
επιστημη さんの Web サイト
明治、大正、昭和、平成それぞれの"初日"がわかっているならば
DateTime はふつーに比較演算できるので↓こんだけのこっちゃないすか?

using System;

class Program {
  public static void Main() {
    DateTime 平成初日 = new DateTime(1989,1,8);
    DateTime 本日 = DateTime.Now;
    Console.WriteLine("{0}は平成で{1}", 本日.ToShortDateString(), 
                      本日 >= 平成初日 ? "ある" : "はない");
    DateTime 過日 = new DateTime(1989,1,7);
    Console.WriteLine("{0}は平成で{1}", 過日.ToShortDateString(), 
                      過日 >= 平成初日 ? "ある" : "はない");
  } //                ^^^^^^^^^^^^^^^^
}

引用返信 編集キー/
■33893 / inTopicNo.4)  Re[2]: 和暦年月日の厳密な存在チェック
□投稿者/ 凪瀬 (97回)-(2009/03/12(Thu) 17:31:42)
「厳密」の程度によりますね。
明治5年に太陽太陰暦から太陽暦に切り替えになっているので、そのあたりもチェックするとしたらかなり面倒です。
太陰暦の日付の妥当性チェックとか正直なところやりたくないですよね。

その辺は無視するとしても

http://www.kumamotokokufu-h.ed.jp/kumamoto/bungaku/wa_seireki.html
---(引用)-------------------
大正・昭和の「改元の詔書」によると「明治45年7月30日と大正元年7月30日」及び
「大正15年12月25日と昭和元年12月25日」はともに存在します。
----------------------------

とあるので、どちらも許すのが厳密なのかもしれませんね。
引用返信 編集キー/
■33894 / inTopicNo.5)  Re[1]: 和暦年月日の厳密な存在チェック
□投稿者/ KG (12回)-(2009/03/12(Thu) 17:51:38)
私も同じような処理を文政から平成までやっています。

日付は環境に左右されそう(あくまで推測ですが)なので、自作しています。

凪瀬様が仰るように、明治には太陰暦から太陽暦にかわった時期は考えず、太陽暦として処理し、
明治45年7月30日と大正元年7月30日、大正15年12月25日と昭和元年12月25日はそれぞれ存在する
ものとしています。

あとは閏年の2月29日を考えるぐらいでしょうか。
引用返信 編集キー/
■33897 / inTopicNo.6)  Re[3]: 和暦年月日の厳密な存在チェック
□投稿者/ aetos (116回)-(2009/03/12(Thu) 18:15:28)
No33893 (凪瀬 さん) に返信
> 「厳密」の程度によりますね。
> 明治5年に太陽太陰暦から太陽暦に切り替えになっているので、そのあたりもチェックするとしたらかなり面倒です。
> 太陰暦の日付の妥当性チェックとか正直なところやりたくないですよね。
>
> その辺は無視するとしても
>
> http://www.kumamotokokufu-h.ed.jp/kumamoto/bungaku/wa_seireki.html
> ---(引用)-------------------
> 大正・昭和の「改元の詔書」によると「明治45年7月30日と大正元年7月30日」及び
> 「大正15年12月25日と昭和元年12月25日」はともに存在します。
> ----------------------------
>
> とあるので、どちらも許すのが厳密なのかもしれませんね。

へー。
平成には重複はないんですね。

あと、明治は Wikipedia
http://ja.wikipedia.org/wiki/%E6%98%8E%E6%B2%BB
によれば、
> 実際に改元の詔書が出されたのは慶応4年9月8日(1868年10月23日)で、同年1月1日に遡って明治元年とすると定めた。
だそうなので、(太陽暦として)1868/1/1〜1868/10/22も明治に入れるんでしょうかね。
引用返信 編集キー/
■33898 / inTopicNo.7)  Re[1]: 和暦年月日の厳密な存在チェック
□投稿者/ やも (3回)-(2009/03/12(Thu) 18:17:10)
επιστημηさん
.SHOさん
凪瀬さん
KGさん

回答ありがとうございます。

みなさんの意見を参考に範囲チェックを自作する方向で実装してみます。
ありがとうございました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -