Domino 9 und frühere Versionen > ND6: Entwicklung
Datum und Zeitbrechnung
andrew22:
das heißt ich soll Enddatum - Startdatum rechnen ???
und Starttime und Endtime ist egal ?!?!?
TMC:
Das kann jetzt unter Umständen gefährlich werden, weil in den Zeitfeldern ein Datum hinterlegt sein kann.
Am besten setzt Du Dir das Datum erstmal zusammen:
vStart = Fix(vStartDatum) + Fraction(vStartZeit).
Das gleiche mit dem Ende-Datum / Uhrzeit.
Die beiden Ergebnis-Variablen vergleichst Du dann:
vResult = vEnd - vStart
vResult kannst Du dann auswerten.
koehlerbv:
Wichtig ist noch die Rundung, sonst kommt da leicht ein "unscharfer" Wert heraus:
--- Code: --- Dim docCurrent As NotesDocument
Dim vStartDT As Variant
Dim vEndDT As Variant
Dim dblResult As Long
Set docCurrent = do it your way
vStartDT = Fix (docCurrent.StartDate (0)) + Fraction (docCurrent.StartTime (0))
vEndDT = Fix (docCurrent.EndDate (0)) + Fraction (docCurrent.EndTime (0))
dblResult = Round ((vEndDT - vStartDT) *24 * 60, 0)
Messagebox dblResult
--- Ende Code ---
TMC:
--- Zitat von: koehlerbv am 10.06.05 - 00:54:04 ---Wichtig ist noch die Rundung, sonst kommt da leicht ein "unscharfer" Wert heraus:
--- Ende Zitat ---
@Bernhard: Date/Time - Behandlung mach ich eher selten, daher interessehalber die Nachfrage: Was kommt da "unscharf" raus?
Ich hätte jetzt eigentlich gemeint, mit den Funktionen Fix und Fraction und der Addition beider Values ist dann alles im grünen Bereich.
Matthias
Semeaphoros:
Die Unschärfe ist in einem anderen Bereich zu suchen, mit Deinen Methoden trennst Du sauber Datums- und Zeitwerte und eliminierst allfällige von Notes hineingebastelte Standardwerte für die Felder, die nur das eine oder das andere berücksichtigen.
Bernhard rundet dann auch noch das Endresultat. Unschärfe kann dort durch das Rundungsproblem des Prozessors entstehen, da die Register nur endliche Grösse haben. Bernhards Schlussrundung schärft das schätzungsweise zu etwa 80%, um das noch ein wenig höher zu schrauben, müsste man mit einem Epsilon-Wert arbeiten und die Rundung noch ein wenig weiter "rechts" ansetzen. Ansonsten ist das genau das Thema, wo Bernhard sonst immer von mir Beweise verlangt ......... :P ..... Also Bernhard, beweise mal, warum die Rundung notwendig ist .... ;D
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln