2016-10-08 1 views
-1

Ich bin neu in VB Scripting. Ich habe zwei Daten, date_1 und date_2. Ich muss date_1 von date_2 subtrahieren und die Differenz im Datumsformat ausgeben.Datumsunterschied zwischen zwei Datumsangaben und die Ausgabe sollte im Datumsformat mit VB-Skript

Beispiel:

date_1 = 01-09-2014 
date_2 = 08-10-2016 

Ausgang würde im Idealfall sein:

= date_2 - date_1 
= 08-10-2016 - 01-09-2014 
= 07-01-0002 

Schließlich muss ich die Ausgabe wie 02 Jahre, 01 Monate und 07 Tage.

Bitte helfen Sie mir.

Vielen Dank im Voraus.

+0

diese Frage finden Sie die Ihnen helfen, http://stackoverflow.com/questions/27030073/vbscript-datediff-month –

+2

Mögliches Duplikat von [Altersberechnung in Jahren, Monaten, Tagen] (http://stackoverflow.com/questions/34196718/age-calculation-in -Jahre-Monate-Tage) – JosefZ

Antwort

-2

Mit einigen string functions können Sie leicht Ihr Ziel erreichen.

Hoffe, das hilft.

date_1 = InputBox("Enter first Date in format DD-MM-YYYY","Time Difference") 
date_2 = InputBox("Enter second Date in format DD-MM-YYYY","Time Difference") 

day_differ = Abs(CInt(Left(date_2 , 2)) - CInt(Left(date_1 , 2))) 
month_differ = Abs(CInt(Mid(date_2 , 4 , 2)) - CInt(Mid(date_1 , 4 , 2))) 
year_differ = Abs(CInt(Right(date_2 , 4)) - CInt(Right(date_1 , 4))) 

wscript.echo "Date Difference is " & year_differ & " years, " & month_differ & " months and " & day_differ & " days." 
0

einen Blick auf den Code unten nehmen:

Dim date_1, date_2, l, r(2) 

date_1 = "01-09-2014" 
date_2 = "08-10-2016" 
l = SetLocale(2057) ' UK 
Delta 0, Array("yyyy", "m", "d"), Array("years", "months", "days"), r, CDate(date_1), CDate(date_2), False 
SetLocale l 

MsgBox Join(r, ", ") ' 2 years, 1 months, 7 days 

Sub Delta(i, t, n, r, d1, d2, c) 
    Dim q, d 
    q = DateDiff(t(i), d1, d2) 
    If UBound(t) > i Then 
     Do 
      d = DateAdd(t(i), q, d1) 
      Delta i + 1, t, n, r, d, d2, c 
      If c Then Exit Do 
      q = q - 1 
     Loop 
    End If 
    c = q >= 0 
    r(i) = q & " " & n(i) 
End Sub 

Sie können sogar das Datum und die Uhrzeit einstellen und Differenz berechnen bis zu Sekunde:

Dim date_1, date_2, l, r(5) 

date_1 = "01-09-2014 10:55:30" 
date_2 = "08-10-2016 15:45:10" 
l = SetLocale(2057) ' UK 
Delta 0, Array("yyyy", "m", "d", "h", "n", "s"), Array("years", "months", "days", "hours", "minutes", "seconds"), r, CDate(date_1), CDate(date_2), False 
SetLocale l 

MsgBox Join(r, ", ") ' 2 years, 1 months, 7 days, 4 hours, 49 minutes, 40 seconds 

Sub Delta(i, t, n, r, d1, d2, c) 
    Dim q, d 
    q = DateDiff(t(i), d1, d2) 
    If UBound(t) > i Then 
     Do 
      d = DateAdd(t(i), q, d1) 
      Delta i + 1, t, n, r, d, d2, c 
      If c Then Exit Do 
      q = q - 1 
     Loop 
    End If 
    c = q >= 0 
    r(i) = q & " " & n(i) 
End Sub 
Verwandte Themen