[gelöst] Datumsformel wie oft in einem Datumsbereich

13. Februar 2007 16:26

Hi zusammen,

irgendwie stehe ich auf dem Schlauch und hab keine Idee. Ich habe einen Datumsbereich und eine Datumsformel. Ich möchte nun wissen, wie oft diese Datumsformel in dem Datumsbereich "vorkommt".

Ein Beispiel
Datumsbereich: 01.01.07..31.06.07
Datumsformel: 1M

Als Ergebnis möchte ich in diesem Fall die Zahl 6 bekommen.

Hat jemand eine Idee wie man das am besten programmiert?

Gruß, Marc
Zuletzt geändert von Marc Teuber am 19. Februar 2007 13:34, insgesamt 2-mal geändert.

13. Februar 2007 16:57

einfach eine Schleife bilden

Datumsbereich: 01.01.07..31.06.07

V_Datum := GETRANGEMIN(Datumsbereich);
REPEAT
i := i + 1;
V_Datum := CALCDATE('+1M',V_datum);
UNTIL V_Datum > GETRANGEMAX(Datumsbereich);
MESSAGE('%1',FORMAT(i));

13. Februar 2007 16:58

Hier mal ein rough'n'dirty Entwurf:
Code:
CurrDate := GETRANGEMIN(DateFilter);
MaxDate := GETRANGEMAX(DateFilter);
WHILE CurrDate < MaxDate DO BEGIN
  CurrDate := CALCDATE(DateFormula,CurrDate);
  IF CurrDate <= MaxDate THEN  // Weglassen, wenn auch angebrochene Zeiträume gezählt werden dürfen
    I += 1;
END;

13. Februar 2007 17:23

Evtl. über die Tabelle Date.
Du könntest auf Periodentyp "Monat" filtern.
Nun noch einen Filter auf Periodenanfang.

Die Anzahl Datensätze währe = Anzahl Monate.
Aber wie deine Datumsformel unterbringen, die wird ja nicht immer '1M' sein!?

...die Tabelle 'Date' auf Periodentyp "Tag" Filtern, Datumsfilter setzten
Mit CALCDATE(DEINE_Datumsformel - Today) bekommst du die Anzahl Tage (dieses währe dein Divisor).

Ergebnis := Date.Count / Divisor;

Das ist nur Theorie, könnte evtl. aber klappen!
Gruß Mikka

**Edit by Mikka**
Timo hat schneller gepostet :roll:

13. Februar 2007 17:40

mikka hat geschrieben:[...]
**Edit by Mikka**
Timo hat schneller gepostet :roll:

Nee, mespelage war noch schneller und hatte die gleiche Idee wie ich. ;-)

13. Februar 2007 17:55

Oh, den hatte ich nicht gesehen :roll:

Zumindest bin ich überstimmt, und ich finde Eure Vaiante auch besser.
Gruß Mikka