Datumsberechnung - Einsteigerproblem :)

Hi,

Aufgabe: Berechne wieviel Tage heute minus gestern sind.
Was luft hier verkehrt?

[code] Dim today As new Date
Dim yesterday As new Date
Dim d As new Date

yesterday.Day = today.Day -1

d.TotalSeconds = today.TotalSeconds - yesterday.TotalSeconds

MsgBox(Str(today.Day) + " - " + Str(yesterday.Day) + " = " + Str(d.Day)) // Soll: 1, Ist: 2
[/code]

Desweiteren wrde ich gerne einen Integer-Wert in ein Datum parsen. How to?

Danke vorab

Also so einfach ist das nicht wirklich. Du kannst natürlich schauen, ob TotalSeconds 86400 Sekunden unterschied hat.
Für Differenzen zwischen zwei Daten habe ich mal einige Zeit verbracht und die DateDifferenceMBS Klasse gebaut.
http://www.monkeybreadsoftware.net/class-datedifferencembs.shtml

Gibt es da eine nachvollziehbare Erklrung:

[code] Dim d1 As new Date
Dim d2 As new Date
Dim msg As String

d1.TotalSeconds = 86400
d2.TotalSeconds = 86400 - 1

msg = Str(d1.TotalSeconds) + " = " + Str(d1.Day) + " Tag(e)" + EndOfLine
msg = msg + Str(d2.TotalSeconds) + " = " + Str(d2.Day) + " Tag(e)" + EndOfLine

MsgBox(msg)
// 86400 = 2 Tag(e)
// 86399 = 1 Tag(e)

d1.TotalSeconds = (86400 * 2)
d2.TotalSeconds = (86400 * 2) - 1

msg = Str(d1.TotalSeconds) + " = " + Str(d1.Day) + " Tag(e)" + EndOfLine
msg = msg + Str(d2.TotalSeconds) + " = " + Str(d2.Day) + " Tag(e)" + EndOfLine

MsgBox(msg)
// 172800 = 3 Tag(e)
// 172799 = 2 Tag(e)[/code]

@ Christian Schmitz: Kann man sich die Klasse herunterladen, oder sie Bestandteil eines kostenpflichtigen MBS Plug-ins?

d1.TotalSeconds = 86400 gibt halt 24h nach dem Nulldatum. Da das Nulldatum der 1.1.1904 ist, kommt halt der 2.1. raus und damit day=2.
Gleiches für unten, wo du halt den 3.1. hast bzw. die 2 für eine Sekunde vor Mitternacht.

Die Klasse gehört zum MBS Util Plugin.