[VB.NET]8ケタの文字列を日付に変換する

テキストボックス1に入力された8ケタの数字(文字列)を日付(0000/00/00)に変換する

 修正済み

'変数宣言
  Dim moziRetu As String = Textbox1.text 
  Dim hiduke As Date
'文字列を数値型に変換。/スラッシュを挿入'それが日付型に変換できるか確認し、変換出来たらテキストボックスに表示
  If Date.TryParse(Format(CInt(moziRetu), "####/##/##"), hiduke) Then

         TextBox1.Text = Format(hiduke, "yyyy/MM/dd")
  End If
説明

細かな説明は後日します。ポイントは、日付型に変換するには1111/11/11のようにスラッシュが入っていなければならないということです。そのため文字型を一旦数値型にしてFormatをつかい/スラッシュを挿入しています。


コメント

個人的にプログラムコードが長く行が増えるほど読む気がなくなります。(上司には短くするより見やすさをと助言をもらってますがまだ慣れません^^;)
なので省きましたが、入力された文字が数字ではなかった場合や、間に数字でないものが入っていた場合のエラー防止に下記のコードを先頭に挿入すると便利です。


変数宣言
  Dim mozi As String = String.Empty
ループして一文字ずつ取り出し、
  For i = 0 To Len(TextBox1.Text) - 1
        mozi = TextBox1.Text.Substring( i, 1)数値型に変換できるか確認し、(変換はせずに)結合
        If IsNumeric(mozi) Then
             moziRetu += mozi
        End If
  Next
文字数が8かどうか確認
  If Len(moziRetu) = 8 Then

  ここに前述のコード

  End If

コメント

このブログの人気の投稿

[VB.NET]テキスト等チェンジイベントを有効化・無効化する

[VB.NET]コンボボックスの1アイテムに2つ以上の値を持たせる