Domino 9 und frühere Versionen > ND8: Entwicklung

NotesDateTime.adjustMonth

<< < (2/3) > >>

koehlerbv:
In Deinem Beispiel im 1. Post hast Du 0:00 Uhr angegeben, Giordano. Das kommt bei mir auch heraus, da LS-Variants wie oben gezeigt immer als 0:00 Uhr interpretiert werden.
Ansonsten gilt weiter das gesagte: Datums-/Zeitwerte sind nur eine Zahl. Du kannst zu vStart einfach Timenumber (9, 16, 22) addieren oder auch 0,25 (für 6:00 Uhr) etc. pp.

Bernhard

BigWim:

--- Zitat ---Wie das genau programmiert wurde, weiss ich leider auch nicht, ...

--- Ende Zitat ---
Das wär was.


--- Zitat ---Leichter verständlich wird dies m.E. durch solchen einen Term:
Messagebox Datenumber (2010, 6, 1 + 30)

--- Ende Zitat ---
Stimmt, warum einfach, wenn es auch kompliziert geht. Werde mich damit weiter beschäftigen, damit sich wenigstens ein paar Fragezeichen auflösen ...

Danke!
Markus

Dubidu:
OK, ich sehe gerade, dass Variant-DateTime seine eigenen Probleme mitbringt...


--- Code: ---Dim vExpectedNDT As Variant

vExpectedNDT = DateNumber( 2007, 1, 31)
vExpectedNDT = DateNumber( Year(vExpectedNDT), Month(vExpectedNDT) + 1, 31)

Print vExpectedNDT
--- Ende Code ---

Wenn ich den 31.01.2007 um einen Monat verschiebe, erhalte ich mit Variant-DateTime 03.03.2007 und mit NotesDateTime 28.02.2007 als Ergebnis. NotesDateTime erscheint mit hier korrekter. Wie soll ich damit umgehen?!

EDIT:
Übrigens funktioniert folgender Code wunderbar, wenn man bei adjustMonth den Parameter True mitgibt:


--- Code: ---Dim ndt As New NotesDateTime("01.05.2007 00:00")

Call ndt.AdjustMonth(1, True)

Msgbox ndt.LSLocalTime
--- Ende Code ---

koehlerbv:
Falsche Herangehensweise - immer an die Zahl als Datum denken!

ExpectedNDT = DateNumber( Year(vExpectedNDT), Month(vExpectedNDT) + 2, 1) - 1

Bernhard

Dubidu:

--- Zitat von: koehlerbv am 11.06.10 - 11:22:59 ---Falsche Herangehensweise - immer an die Zahl als Datum denken!

ExpectedNDT = DateNumber( Year(vExpectedNDT), Month(vExpectedNDT) + 2, 1) - 1

Bernhard

--- Ende Zitat ---

Danke, für deine Antwort, aber das ist leider eine Einzelfallbehandlung.
Wie würdest du das hier anwenden?!


--- Code: ---For iMonth = 1 To 12
For iDay = 1 To 31
vExpectedNDT = DateNumber( 2007, iMonth, iDay)
vExpectedNDT = DateNumber( Year(vExpectedNDT), Month(vExpectedNDT) + 1, iDay) + TimeNumber(00, 59, 00)

Print vExpectedNDT
Next
Next
--- Ende Code ---

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln