2013-12-17 8 views
5

Ich möchte den Unterschied zwischen zwei Datumsangaben von zwei Datumsauswahl in Jahren, Monaten & Tage in separaten Textfeldern erhalten.Get date difference in VB.NET

Ich habe versucht:

txtyrs.text = datediff(datetimepicker1,datetimepicker2) 

Es funktioniert nicht.

+0

Was nicht funktioniert? Irgendwelche Fehler? – DevelopmentIsMyPassion

Antwort

0

Einige Berechnungen durchgeführt und dann werden müssen,

dim ts as TimeSpan = dtpicker1.value - dtpicker.value 
dim days, months, years as integer 
months = 12*(dtp1.value.year - dtp2.value.year) (dtp1.value.month-dtp2.value.month) 

... Mehr

5

Versuchen Sie folgendes:

Dim date1 As Date = Date.Now 
Dim date2 As Date = date1.AddDays(4.0#) 

Dim span = date2 - date1 

Dim days As Double = span.TotalDays '=4 

Und wenn man die Jahre extrahieren möchten, werfen Sie einen Blick auf this post.

1

Verwenden TimeSpan und einig Datum calculaton, sollte diese Arbeit:

Dim offset = New Date(1, 1, 1) 
Dim dateOne = DateTimePicker1.Value 
Dim dateTwo = DateTimePicker2.Value 
Dim diff As TimeSpan = dateTwo - dateOne 
Dim years = (offset + diff).Year - 1 
Dim months = (dateTwo.Month - dateOne.Month) + 12 * (dateTwo.Year - dateOne.Year) 
Dim days = diff.Days 
TxtYear.Text = years.ToString 
TxtMonth.Text = months.ToString 
TxtDays.Text = days.ToString 
0

Try this:

txtyrs.text=datediff(DateInterval.Year,datetimepicker1,datetimepicker2).ToString() 

Unter der Annahme, dass datetimepicker1 und datetimepicker2 vom Typ sind DateTime. Wenn nicht, müssen Sie die entsprechenden DateTime Werte abrufen und diese stattdessen verwenden.

0

So etwas sollte funktionieren:

Dim dateOne = DateTimePicker1.Value 
    Dim dateTwo = DateTimePicker2.Value 
    Dim diff As TimeSpan = dateTwo.Subtract(dateOne) 
    Dim years As Double = diff.TotalDays/365 
    txtyrs.Text = years.ToString 
    txtmonsh.Text = (years * 12).ToString 
    txtdays.Text = diff.TotalDays.ToString 
1

Verwendung:

datediff(interval, date1, date2); 

Für Beispiel: Intervall kann sei Tag, Monat, Jahr, Stunden, Sekunden, usw. Es subtrahiert Datum1 von Datum2.

Geben Sie im Datumsformat date1 und date2 ein.

Format: DateDiff(DateInterval.Day, Now.Date, Now.AddDays(4).Date)

Ausgang: 4

0
Dim D1 as Date = Now 
Dim D2 as Date = D1.AddDays(10) 
Dim difference As 
TimeSpan = D2.Subtract(D1) 
msgBox(“{0} Days”, difference.TotalDays) 'THIS WILL RETURN Total No. of Days 
0

ich Ihren Code geändert haben, so dass Sie sie leicht verstehen können.

Versuchen Sie folgendes:

txtyrs.text = DateDiff(DateInterval.Day, datetimepicker1.value,datetimepicker2.value) 

Ich hoffe, das ist es. Wenn etwas falsch oder immer noch verwirrend ist, informiere mich einfach.

0

Mit DatDiff, rufen Sie sie mit unterschiedlichem Datumsintervall Parametern den entsprechenden Wert zu erhalten:

Dim D1, D2 As Date 
    D1 = Date.Now 
    D2 = #11/9/2004# 
    'DateDiff 
    Console.WriteLine("DateDiff") 
    Console.WriteLine() 
    Console.WriteLine("{0} Days", _ 
     DateDiff(DateInterval.Day, D1, D2)) 
    Console.WriteLine("{0} Hours", _ 
     DateDiff(DateInterval.Hour, D1, D2)) 
    Console.WriteLine("{0} Minutes", _ 
     DateDiff(DateInterval.Minute, D1, D2)) 
    Console.WriteLine("{0} Seconds", _ 
     DateDiff(DateInterval.Second, D1, D2)) 
    Console.WriteLine() 

Alternativ kann eine Zeitspanne Struktur wie das Ergebnis der Subtraktion einen Zeitpunkt von einem anderen abgerufen wird, und dann wird die Abfrage verschiedene Mitglieder dieser Struktur.

Console.WriteLine("TimeSpan") 
    Console.WriteLine() 
    Dim difference As TimeSpan = D2.Subtract(D1) 
    Console.WriteLine("{0} Days", difference.TotalDays) 
    Console.WriteLine("{0} Hours", difference.TotalHours) 
    Console.WriteLine("{0} Minutes", difference.TotalMinutes) 
    Console.WriteLine("{0} Seconds", difference.TotalSeconds) 
    Console.WriteLine() 

Der Ausgang der beiden unterschiedlichen Verfahren ist nahezu identisch, mit der Ausnahme, dass die Timespan Eigenschaften Doubles zurückkehren, während DatDiff liefert immer Nachläufer (Int64).

DatDiff

175 Tage

4222 Stunden

253345 Minuten

15200730 Sekunden

Span

175,934383644387 Tage

4222,42520746528 Stunden

253345,512447917 Minuten

15200730,746875 Sekunden