@Klaus:
Und Stringverarbeitung findet da mMn auch nicht statt, das Format schneidet ja nur die Sekunden ab und ist nicht wirklich Stringverarbeitung. Sowohl Übergabewert als auch Rückgabewert sind vom Datentyp Date.
Nur unter uns und am Rande: auch wenn Die Funktion Date als Argument und Rückgabewert hat, wird mit Format() Stringverarbeitung/-konvertierung gemacht, denn der Returnwert von Format() ist dabei sogar Variant/String, bei Format$() dann das etwas performantere String. Beides muß dann wieder zurück nach Date konvertiert werden und, viel wichtiger weil undokumentiert, es geht die Datumsinformation dabei verloren!
... muss man mindestens mal wissen, wie die Zahlen 1440 und 86400 zu Stande kommen
Ok, hätte ich vielleicht kommentieren sollen, aber die Werte sollte eigentlich geläufig sein, wenn man mit Daten rechnet. Funktionen wie int() und co. halte ich für Grundkenntnisse, die man einfach wissen sollte, wenn man programmiert (und das nicht nur mit VBA). Im Zweifel muß man halt nochmal in der Doku nachschauen.
@EinGast:
... ohne Verwendung oder Bearbeitung von Fließkommazahlen (Stichwort Rundungsfehler)
Natürlich wird hier mit Fließkommazahlen gearbeitet, schließlich ist der Date-Datentyp intern nichts anderes wie ein Double. Im Prinzip könnten also auch bei diesen Berechnungen Rundungsfehler auftreten, was aber bei genauer Betrachtung hier vernachlässigt werden kann.
Das Stichwort "Rundungsfehler" als Begründung greift hier also nicht.
Nichtsdestotrotz ein interessanter Ansatz, obwohl ich das Rechnen mit der numerischen Entsprechung von booleschen Werten nicht besonders gut finde, denn das ist sprach- bzw. systemabhängig und läßt sich nicht verallgemeinern.
So wird in T-SQL TRUE durch 1 repräsentiert, in Access JET-SQL aber durch -1 !
Gruß Ulrich