- - PR -
西暦の和暦変換について教えてください☆
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-01-19 18:11
超初心者です。助けてください・・(´д⊂ シクシク
VB.NETで西暦で取得した日付を和暦に変換して帳票に出力したいのですが、 10未満の年は一桁で表示したいのです。(例:平成 9年11月23日) 「.NET TIPS 西暦と和暦を変換するには?」のサンプルを参考にさせてもらった のですが、ゼロが表示されてしまいます。何か良い方法はないでしょうか。 よろしくお願いします。 コードを以下に表記します。これだと「平成09年1月19日」になっちゃうんですよね・・。 Dim culture As CultureInfo = New CultureInfo("ja-JP", True) culture.DateTimeFormat.Calendar = New JapaneseCalendar() Dim m_Sakuseibi As String m_Date = "1995/1/19" m_Sakuseibi = m_Date.ToString("ggy年M月d日", culture) txtSakuseibi.Text = m_Sakuseibi & " 作成" | ||||
|
投稿日時: 2004-01-20 07:31
諸農です。
確かにドキュメントに記載されているようにはならないですね。。(>_<) 別の方法でやってみてはいかがですか。 C#ですが、こんな感じです。
ではでは(^^)/ _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||
|
投稿日時: 2004-01-20 09:32
場当たり的ですが
年が10以下なら年の2つ前(0の前)で切ってくっつけるというのもあります。
| ||||
|
投稿日時: 2004-01-20 11:01
上記の
m_Sakuseibi = m_Date.ToString("ggy年M月d日", culture) の部分を m_Sakuseibi = m_Date.ToString("gg", culture) _ + culture.DateTimeFormat.Calendar.GetYear(m_Date).ToString() _ + m_Date.ToString("年M月d日", culture) とする方法も考えられます。GetYearはIntegerで返るので頭の0はとれるわけです。 | ||||
|
投稿日時: 2004-01-20 11:33
こんなの使ってます。
m_Sakuseibi = m_Date.ToString("ggy年M月d日", culture).Replace("年0","年").Replace("月0", "月") | ||||
|
投稿日時: 2004-01-20 11:35
るぱんです。
強引なやり方の一つを紹介します。 1.文字列としてStringに格納 2.Replace関数を使って"0"→""に変換 3.結果を表示。 邪道ですけど、いかがでしょう? ポイント ・表記的な問題は出力部分で表示させる。 ・内部変数では定型表記で保存しておきたい。 です。 ただ、出力したデータを読み取って又何かし始めるということになると 変数の取り扱いが注意です。 以上 | ||||
|
投稿日時: 2004-01-20 11:37
>m_Sakuseibi = m_Date.ToString("ggy年M月d日", culture).Replace("年>0","年").Replace("月0", "月")
なるほど。非常に単純明快なコードでいいですね。これ。 | ||||
|
投稿日時: 2004-01-20 13:33
なみへーです。
?? Replace関数だと 平成15年01月10日⇒平成15年1月1日 になってしまう気がします・・・ |