[VB.NET]8ケタの文字列を日付に変換する
テキストボックス1に入力された8ケタの数字(文字列)を日付(0000/00/00)に変換する
例 修正済み
'変数宣言
Dim moziRetu As String = Textbox1.text
例 修正済み
'変数宣言
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
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
moziRetu += mozi
End If
Next
文字数が8かどうか確認
If Len(moziRetu) = 8 Then
ここに前述のコード
文字数が8かどうか確認
If Len(moziRetu) = 8 Then
ここに前述のコード
End If
コメント
コメントを投稿