[gelöst] Datumsberechnung

10. November 2008 12:27

Hallo allerseits,

wir erhalte ich aus den heutigen Datum (today) folgende Datums

- 15. des vorherigen Monats
- Letzer Tag des vorherigen Monats
- 15. des aktuellen Monats
- Letzter Tag des aktuellen Monatas
- 15 des folgenden Monats
- Letzter Tag des folgenden Monats


Also Beispiel habe ich als Today 10.11.2008

folgende Datum möchte ich erhalten

- 15.10.2008
- 31.10.2008
- 15.11.2008
- 30.11.2008
- 15.12.2008
- 31.12.2008

Vielen Dank in vorraus
Zuletzt geändert von dai am 10. November 2008 15:50, insgesamt 1-mal geändert.

Re: Datumsberechnung

10. November 2008 12:46

Das Zauberwort würde wohl "CALCDATE" heissen!
Zur Hilfe wuerd ich die C/AL REf. Hilfe nutzen sowie Navision24(http://www.navision24.de/befehle/calcdate.html)

ganz evtl. kannst du dir auch die Funktionen "MakeDateFilter" und "MakeDateFilter2" in der CU 1 anschauen.

Re: Datumsberechnung

10. November 2008 13:00

Das deutsche T bzw. LM kann bei CALCDATE je nach Version ab 3.x zu Problemen führen.
Durch die spitzen Klammern und Verwendung von D statt T bzw. CM (Current Month) statt LM wird der CALCDATE-Ausdruck sprachenunabhängig und zur Laufzeit immer verstanden.
Code:
MyDate := CALCDATE('<CM>'); // letzter Tag des lfd. Monats
MyDate := CALCDATE('<-CM>'); // erster Tag des lfd. Monats
MyDate := CALCDATE('<-1M+CM>');  // letzter Tag des Vormonats
MyDate := CALCDATE('<-CM-1M>'); // erster Tag des Vormonats
MyDate := CALCDATE('<-CM-1M+14D>'); // 15. des Vormonats

Re: Datumsberechnung

10. November 2008 13:16

MyDate := CALCDATE('<CM-1M>'); // letzter Tag des Vormonats

Andersrum. <'-1M+CM'>. Sonst wird´s heute der 30.10.

Re: Datumsberechnung

10. November 2008 13:53

McClane hat geschrieben:
MyDate := CALCDATE('<CM-1M>'); // letzter Tag des Vormonats

Andersrum. <'-1M+CM'>. Sonst wird´s heute der 30.10.

Stimmt, habe ich korrigiert. Die Zwischenablage sollte für Programmierer verboten werden. :mrgreen:

Re: Datumsberechnung

10. November 2008 14:19

Wieso? So programmiere ich immer ;)

Re: Datumsberechnung

10. November 2008 15:49

Hallo

Vielen Dank für Eure Hilfe. Es klappr wunderbar. zu meinen oben genannten Datums habe ich folgende Codes benutzt:

//Mein Code
Date1 := CALCDATE('<-CM-1M+14D>');
Date2 := CALCDATE('<-1M+CM>');
Date3 := CALCDATE('<-CM+14D>');
date4 := CALCDATE('<CM>');
date5 := CALCDATE('<-CM+1M+14D>');
date6 := CALCDATE('<+1M+CM>');
// Mein Code

Gruß Dai