VBレスキュー(花ちゃん)
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ各掲示板

リンク元へ戻ります。 日付・時刻関係のメニュー
1.日付時刻表示書式指定文字の使用例及び簡易リファレンス
2.現在日付と現在時刻を取得及び設定
3.指定した日付の曜日を求める及び第○□曜日の算出方法
4.指定した年月の末日を求める及びうるう年及び干支を求める
5.日付データを変換する及び秒・ミリ秒等から時分秒単位に変換する
6.日付及び時間に関する計算色々
7.経過時間計測色々
8.指定時間待つ(安全な待機関数)
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.その他、当サイト内に掲載の日付・時刻に関するサンプル


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.




このページのトップへ移動します。