こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

和暦→西暦(有効範囲を考慮)

いつもお世話になってます。

VB2010(.NET2.0)、Winアプリ

和暦(元号)と西暦の相互変換についてです。
CultureInfo、JapaneseCalendarを使用して変換しています。

西暦→和暦の変換は問題ないんですが
和暦→西暦の変換時に有効ではない和暦を指定するとエラーとなります。
ここの「有効ではない和暦」というのは例えば「大正30年」とかです。

フォーム上にComboBoxとTextBoxが配置されており
ComboBoxには「明治」「大正」「昭和」「平成」を格納、
TextBoxは数値入力のみですが2桁数値というだけで
他の制限はかけていない状態です。

各元号に有効な値を保持しといてって方法は最終手段です。
出来るだけ汎用性を持たせた形で上記エラーを回避したいと思っています。

思いついてる方法はあまりスマートではないので
どなたか、こんな風にコーディングすれば出来るよって
ヒントでもいいのでご意見いただけると幸いです。

よろしくお願いしますm(_ _)m

投稿日時 - 2012-05-08 10:36:29

QNo.7464290

困ってます

質問者が選んだベストアンサー

ComboBoxで選択された年号の元年12月31日を西暦年で求める+TextBoxに入力された数値 -1 で、良いのではないでしょうか?

例:「大正」「30」

大正元年12月31日=1912/12/31→1912
1912+30-1=1941年

投稿日時 - 2012-05-08 19:25:09

お礼

現在、開発PCがトラブル中なので
直り次第、ご意見参考にさせていただきます。

回答、ありがとうございました。

投稿日時 - 2012-05-10 13:33:05

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

>個人的にエラー補足時にエラー処理や
>ログ出力以外の事をやるのは気が引けるんですよね。。。。
DateTime.TryParseExact メソッドを使えばいいのでは。

投稿日時 - 2012-05-09 09:37:07

お礼

現在、開発PCがトラブル中なので
直り次第、ご意見参考にさせていただきます。

回答、ありがとうございました。

投稿日時 - 2012-05-10 13:36:45

ANo.1

例外処理を使いましょう。
まず西暦→和暦変換を行い、それでエラーが発生したら捕捉して対応処理を行う、という処理の流れになります。
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard12.htm

投稿日時 - 2012-05-08 13:51:35

お礼

やっぱり例外処理しかないんでしょうか。
(思いついてるのは例外処理での対応でした)

個人的にエラー補足時にエラー処理や
ログ出力以外の事をやるのは気が引けるんですよね。。。。


回答、ありがとうございました。

投稿日時 - 2012-05-08 15:07:51