Axel, wenn es eine allgemein gültige Lösung gäbe, wäre diese schon längstens in den Programmiersprachen oder unterdessen möglicherweise bereits auf Professorebene implementiert. Kurz zusammengefasst ist das Problem mit einer solche Lösung etwa so zu umschreiben:
Diese Korrektur geht davon aus, dass der Ist-Wert von einem korrekten Soll-Wert um ein Delta abweicht. Die Korrektur versucht nun, dieses Delta zu reduzieren (ein eliminieren ist leider nicht möglich). Dabei ist der korrekte Sollwert ja nicht wirklich bekannt, sondern wird vermutet. Leider kann dabei passieren, dass das Delta statt verkleinert auch vergrössert wird. Werden nun solche mit einem Fehler behafteten Operationen aneinandergehängt, dann zeigt sich das Phänomen der Fehlerfortpflanzung. Mit jeder neuen, korrigierten Operation wird die Fehlerwahrscheinlichkeit auch grösser. Von da kommt die ziemlich strikte Regel, dass solche Korrekturen erst am Endresultat vorzunehmen sind.
Soviel zum allgemeinen, im Speziellen für Zeit und Datum spricht das ganze dafür die NotesDateTime Klasse zu verwenden, anstatt die Berechnungen direkt am Zeitwert durchzuführen, in der Hoffnung, dass die interne Implementation dieser Klasse die Problematik so weit wie möglich berücksichtigt.