- ベストアンサー
日付の計算
VB6で開発をしています。 YYMMDD形式で日付をあらわした2つの文字列に、日単位で何日差があるのかを調べるいい方法はないでしょうか? うるう年があったりして、いい方法がみつからなくてこまっています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
'Form1にテキストボックスを二つ、コマンドボタンをひとつ貼り付けて実行してみてください。 Private Sub Command1_Click() Dim dtDate1 As Date, dtDate2 As Date, lngDiffDate As Long dtDate1 = CDate(Form1.Text1) dtDate2 = CDate(Form1.Text2) lngDiffDate = DateDiff("d", dtDate1, dtDate2) MsgBox lngDiffDate & " 日です。" End Sub '以上
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
例として Sub tst02() a = "020324" t1 = Format(a, "00/00/00") t2 = CDate(t1) MsgBox t2 b = "020314" t3 = Format(b, "00/00/00") t4 = CDate(t3) MsgBox t4 ret = DateDiff("d", t4, t2) MsgBox ret End Sub 結果は10 ーー VB6でやってみて、CDateで日付化できませんか。 出来れば2つの文字列を日付化しDateDiffで引き算する。
- diashun
- ベストアンサー率38% (94/244)
'No.1です。YYMMDD形式を忘れていました。 '以下の通り修正してください。 Private Sub Command1_Click() Dim dtDate1 As Date, dtDate2 As Date, lngDiffDate As Long Dim stryear1 As String, strMonth1 As String, strDay1 As String Dim stryear2 As String, strMonth2 As String, strDay2 As String With Form1 stryear1 = "20" & Mid(.Text1, 1, 2) strMonth1 = Mid(.Text1, 3, 2) strDay1 = Mid(.Text1, 5, 2) stryear2 = "20" & Mid(.Text2, 1, 2) strMonth2 = Mid(.Text2, 3, 2) strDay2 = Mid(.Text2, 5, 2) End With dtDate1 = CDate(stryear1 & "/" & strMonth1 & "/" & strDay1) dtDate2 = CDate(stryear2 & "/" & strMonth2 & "/" & strDay2) lngDiffDate = DateDiff("d", dtDate1, dtDate2) MsgBox lngDiffDate & " 日です。" End Sub '以上
お礼
バッチりでした! ログインパスワードを忘れてしまい、お礼が大変遅れてしまいました。 ありがとうございました。