5.日付データを変換する及び秒・ミリ秒等から時分秒単位に変換する |
1.文字列を日付に変換する 2.数値を日付に変換する 3.西暦を和暦に和暦を西暦に変換する 4.秒及びミリ秒等の単位の数値から日付型(hh:mm:ss.000)に変換する 5. 6. |
下記プログラムコードに関する補足・注意事項 動作確認:Windows Vista・Windows 7 (32bit) / VB6.0(SP6) Option :[Option Explicit] 参照設定:追加なし 使用 API:なし その他 : : |
1.文字列を日付に変換する |
Private Sub Command1_Click() '文字列を日付に変換する Dim strDate As String Dim MyDate As Variant '全角の数字でもOK strDate = "平成25年7月20日" If IsDate(strDate) Then MyDate = DateValue(strDate) Debug.Print TypeName(MyDate) 'Date Debug.Print MyDate '結果 2013/07/20 End If '================================================================= '日付に変換したい文字列は '"1991/12/30" "91/12/30" "平成 3 年 12 月 30 日" "H3 - 12 - 30" '"H10-8-8" "1 Aug 98" 'などの形式で指定することもできます。 '================================================================= End Sub |
2.数値を日付に変換する |
Private Sub Command1_Click() Dim yy As Integer Dim mm As Integer Dim dd As Integer yy = 13: mm = 7: dd = 20 If IsDate(yy & "/" & mm & "/" & dd) Then Debug.Print DateSerial(yy, mm, dd) '2013/07/20 End If End Sub |
3.西暦を和暦に和暦を西暦に変換する |
Private Sub Command1_Click() Dim myDate As Date '西暦を和暦変換する myDate = "2013/07/21" Debug.Print Format$(myDate, "GGGEE年MM月DD日") '平成25年07月21日 '和暦を西暦に変換する myDate = "平成25年07月21日" Debug.Print Format$(myDate, "YYYY/MM/DD") '2013/07/21 End Sub |
4.秒及びミリ秒等の単位の数値から日付型(hh:mm:ss.000)に変換する |
掲示板の質問に答えて作成した分で、サンプル投稿用掲示板にも投稿している分です。 Private Sub Command1_Click() Dim myTime As Double Dim s As String Dim dt As Double myTime = 7261001 s = CStr(CDate(myTime / 86400000#)) & Right$(Format$(CStr(myTime / 1000), "###.000"), 4) Debug.Print s '結果 2:01:01.001 '因みに、秒から 00:00:00 に変換するには Debug.Print CStr(CDate(54321# / 86400#)) '結果 15:05:21 '魔界の仮面弁士 さんの投稿分 s = Format$(DateAdd("s", myTime \ 1000, 0), "hh\:nn\:ss") & "." & Format$(myTime Mod 1000, "000") Debug.Print s '結果 02:01:01.001 '--------------------------------------------------------------------------- 'そして、もしも24時間(86400000ミリ秒)を越える可能性があるなら、こんな感じかな……。 myTime = 98765432 dt = DateAdd("s", myTime \ 1000, 0) s = Format$(DateDiff("h", 0, dt), "00") & ":" & Format$(dt, "nn\:ss") _ & "." & Format$(myTime Mod 1000, "000") Debug.Print s '結果 27:26:05.432 End Sub 上記を応用すれば、色々な変換ができるかと思いますので用途に合わせて作り直して下さい。 (掲示板の質問に答えてその仕様に合わせて作成したものなので...。) |
5. |
6. |