[gelöst] letzter 1. September per calcdate finden

3. Dezember 2010 10:04

Hallo,

nach Eingabe eines Datums will ich immer den letzten 1.September finden. Wie geht das?

Beispiel.

03.12.10 -> 01.09.10
01.09.10 -> 01.09.10
31.08.10 -> 01.09.09
05.05.10 -> 01.09.09
Zuletzt geändert von dai am 6. Dezember 2010 16:54, insgesamt 1-mal geändert.

Re: letzter 1. September per calcdate finden

3. Dezember 2010 10:21

Hi,
Code:
y := DATE2DMY(TODAY, 3);
IF (DATE2DMY(TODAY, 2) <= 8) THEN BEGIN
  y -= 1;
END;
MESSAGE(FORMAT(DMY2DATE(1, 9, y)));

Du musst TODAY nur noch durch dein Eingabedatum ersetzen.
:roll:

Re: letzter 1. September per calcdate finden

3. Dezember 2010 10:54

In einer Zeile:
Code:
d:=calcdate(strsubstno('<-%1Y>',format(date2dmy(DeinDate,2)<9,0,'<Number>')),DMY2DATE(1,9,DATE2DMY(DeinDate,3)));

Re: letzter 1. September per calcdate finden

3. Dezember 2010 12:44

oder einfach:
Code:
CALCDATE('<D1-M9>',d);


*mit d = Datum

:-)

mfg,
winfy
Zuletzt geändert von winfy am 16. Dezember 2014 11:47, insgesamt 1-mal geändert.

Re: letzter 1. September per calcdate finden

3. Dezember 2010 12:57

winfy hat geschrieben:oder einfach:

Code:
CALCDATE('<D1><-M9>',d);

Aber meins ist spektakulärer :roll: :mrgreen:

Re: letzter 1. September per calcdate finden

3. Dezember 2010 15:13

McClane hat geschrieben:Aber meins ist spektakulärer :roll: :mrgreen:


Man macht sich zumindestens so unabkömmlich, wenn man den Code wieder überarbeiten soll! :twisted:

mfg,
winfy

Re: letzter 1. September per calcdate finden

3. Dezember 2010 16:04

Das ist wieder mal ein Beispiel dafür, was ich immer schon sage. Sowohl FORMAT als auch CALCDATE sind richtig gute Funktionen, aber man muß sich ein wenig damit beschäftigen. Die meisten kennen die Funktionen nicht über die 08/15-Beispiele hinaus und basteln sich daher oftmals komplizierte Eigenentwicklungen, um eigentlich bereits machbare Dinge zu erreichen.

@McClane: Das ist nicht auf deine verschachtelte Lösung bezogen, sondern allgemein. :-)

Re: letzter 1. September per calcdate finden

3. Dezember 2010 16:24

Ja ist klar, wenn das Richtige da steht, kann ich auch den Oberlehrer raus hängen lassen :evil: :mrgreen:

Re: letzter 1. September per calcdate finden

6. Dezember 2010 11:10

McClane hat geschrieben:Ja ist klar, wenn das Richtige da steht, kann ich auch den Oberlehrer raus hängen lassen

Keine Sorge, ich beziehe mich da durchaus mit ein. :mrgreen: Ich bin ja kein allwissendes Orakel. :wink: Du mußt es mir ja auch nicht glauben, aber es war wirklich nicht auf dich bezogen. Aus meiner Sicht gibt es da auch kein richtig oder falsch, sondern nur einfach oder weniger einfach. Wenn ich dann immer sehe, daß einige ganz kompliziert die Datumstabelle filtern oder sowas, dann denke ich immer, daß die Möglichkeiten von CALCDATE viel zu wenig bekannt sind.

Re: letzter 1. September per calcdate finden

6. Dezember 2010 16:17

HattrickHorst hat geschrieben:
McClane hat geschrieben:Ja ist klar, wenn das Richtige da steht, kann ich auch den Oberlehrer raus hängen lassen

Keine Sorge, ich beziehe mich da durchaus mit ein. :mrgreen: Ich bin ja kein allwissendes Orakel. :wink: Du mußt es mir ja auch nicht glauben, aber es war wirklich nicht auf dich bezogen. Aus meiner Sicht gibt es da auch kein richtig oder falsch, sondern nur einfach oder weniger einfach. Wenn ich dann immer sehe, daß einige ganz kompliziert die Datumstabelle filtern oder sowas, dann denke ich immer, daß die Möglichkeiten von CALCDATE viel zu wenig bekannt sind.


Ach was, falls jemand bei einem Endkunden arbeitet und der einzige "NAV-Crack" ist, dann kann er bei Unterauslastung durchaus seinen Arbeitsalltag damit füllen, zusätzlichen NAV-Code zu erzeugen. Schließlich muss Cheffe sehen, dass der IT-Spezi ständig "beschäftigt ist :-D *grins*

Re: letzter 1. September per calcdate finden

6. Dezember 2010 16:54

Vielen Dank für die viele Beiträge. Hat mir sehr geholfen und es funktioniert wunderbar.

Viele Grüsse

Re: letzter 1. September per calcdate finden

7. Dezember 2010 09:20

Lord_British hat geschrieben:Ach was, falls jemand bei einem Endkunden arbeitet und der einzige "NAV-Crack" ist, dann kann er bei Unterauslastung durchaus seinen Arbeitsalltag damit füllen, zusätzlichen NAV-Code zu erzeugen. Schließlich muss Cheffe sehen, dass der IT-Spezi ständig "beschäftigt ist :-D *grins*


Das meinte ich auch damit: 8-)
winfy hat geschrieben:Man macht sich zumindestens so unabkömmlich, wenn man den Code wieder überarbeiten soll! :twisted:

mfg,
winfy


Es heißt ja auch nicht das ein kürzerer Code besser ist.
Wenn man den Code mit der Strategie "Divide and Conquer" divide et impera aufbaut, Programmierrichtlinien beachtet und ihn gut dokumentiert ist er in der Regel auch übersichtlich.

dai hat geschrieben:Vielen Dank für die viele Beiträge. Hat mir sehr geholfen und es funktioniert wunderbar.

Viele Grüsse


Keine Ursache.

mfg,
winfy