DOBON.NET DOBON.NETプログラミング掲示板過去ログ

文字の取得方法

  • 題名: 文字の取得方法
  • 著者: Shino
  • 日時: 2004/08/14 19:28:32
  • ID: 5567
  • この記事の返信元:
    • (なし)
  • この記事への返信:
  • ツリーを表示
環境/言語:[Windows2000]
分類:[.NET]

お世話になります。
基本的っぽいことで申し訳ありませんが・・・。

平成16年(16は半角)といったTextBoxなどからの情報を取得する時、
頭の2文字の漢字の内容を取得するのはどうすればよろしいでしょうか?
で、その内容より2004という数字に変換したいです。
数字なら ○○.Substring(0, 4)で取れますが・・・。

よろしくお願い致します。
2004/08/15(Sun) 15:40:26 編集(投稿者)

■No5567に返信(Shinoさんの記事)
> お世話になります。
> 基本的っぽいことで申し訳ありませんが・・・。
>
> 平成16年(16は半角)といったTextBoxなどからの情報を取得する時、
> 頭の2文字の漢字の内容を取得するのはどうすればよろしいでしょうか?
> で、その内容より2004という数字に変換したいです。
> 数字なら ○○.Substring(0, 4)で取れますが・・・。
>
> よろしくお願い致します。

Shinoさん、こんばんは。

System.DateTime

System.Globalization.JapaneseCalendar
のクラスを使えば、日付に関する情報を取得することが可能です。

サンプルとして、私のサイトにある日付変換関数を使って、
Dim sDate As String = "平成16年"
Dim sEra As String = sDate.Substring(0, 2)
Select Case sEra
 Case "平成" : sEra = "4"
 Case "昭和" : sEra = "3"
 Case "大正" : sEra = "2"
 Case "明治" : sEra = "1"
End Select
sDate = sEra + sDate.substring(2, 2) + "0101" 'これで"4160101"になります
sDate = convertEra(sDate).sDate.Substring(0, 4)
といった感じで"2004"が結果として戻るで駄目ですか?
  • 題名: Re[2]: 文字の取得方法
  • 著者: Shino
  • 日時: 2004/08/15 1:33:50
  • ID: 5575
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
ぺがらぼさん、こんばんは。

あれ?漢字でも、普通に.Substring(0, 2)で取れますね・・・。
さっきなぜうまく行かなかったのだろう・・・?
(寝ぼけていたのかな・・・?)

今、System.DateTime.Now から取得した西暦年から前5年分をCmbBoxへ表示する時に平成16年、平成15年・・・と表示し、CmbBoxから平成16年を選択したら、2004として取得して、テーブルに2004で追加という処理の中での質問でした。

なお、CmbBoxへ表示する際に、西暦と0101をくっつけた"YYYYMMDD"を作り、Call convertEra(YYYYMMDD) で 西暦→和暦へし、自作したFunctionで和暦(ex:4160101)を平成16として表示していました。 (ぺがらぼさんのサイトから頂いたのをそのまま使わせて頂いてます)

簡易的にテストしたので、sEra = "4"と返って来るところまでしかやってないですが、それがさっきはうまく行かなかったので・・・。
ここまで来ればOKです。

どうもありがとうございました!!
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板