Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Probleme bei SerienTerminen von einem Kalender (https://www.delphipraxis.net/137833-probleme-bei-serienterminen-von-einem-kalender.html)

gangs-taas 29. Jul 2009 10:55


Probleme bei SerienTerminen von einem Kalender
 
Hey,
Ich schreibe ja im moment an einem Kalender.
Und dieser Kalender bassiert auf den Kalenderwochen.
d.h. er zeigt immer eine ganze woche an.
(das musste vorweg zur info)


so ich möchte nun serien Termine da mit einbinden, also termine die immer wiederkommen.
Wenn das Termine sind die (nur ein beispiel) alle 4 wochen wiederkommen habe ich auch schon rausgefunden wie ich das mach.

also wenn man rechnet

(JetztigeKalenderwoche - StartKalenderwoche ) / dieWiederkehrzeit(also z.b. alle 4 wochen)

wenn das Ergebnis von dieser Rechnung keinen Rest hat dann ist die Jetztige Kalenderwoche eine dieser 4 wochen ....


okay
soweit so gut.


jetzt zu meiner Frage.

wisst ihr wie ich das einbinden könnte, dass ich z.b. jeden letzten mittwoch im Monat einen termin habe ?


weil dann alle 4 wochen zu sagen geht nicht.

mal ist der letzte Mittwoch eines Monates nur 3 oder 5 wochen nach dem vorherigen Termin...

wisst ihr wie ich das überprüfen könnte ?

ich weiß nämlich einfach nicht weiter...



ich hoffe ihr versteht mein Problem ....


danke schon einmal

Jürgen Thomas 29. Jul 2009 15:04

Re: Probleme bei SerienTerminen von einem Kalender
 
Hallo,

wenn du C# lesen kannst (oder es versuchen willst), dann schau einmal den Tipp unter Bestimmung des Datums des letzen Wochentages eines Monats an. Das sollte sich schnell nach Delphi übertragen lassen. (Allerdings habe ich schon länger nichts aktiv in Delphi gemacht, ich müsste erst in der Doku nach den DateTime-Eigenschaften schauen.)

Hinweis: % = modulo

Gruß Jürgen

mkinzler 29. Jul 2009 15:06

Re: Probleme bei SerienTerminen von einem Kalender
 
Ein Blick in die Unit DateUtils könnte auch helfen

gangs-taas 29. Jul 2009 15:27

Re: Probleme bei SerienTerminen von einem Kalender
 
nein ich kann leider kein c#

@mkinzler :

was genau meinst du ?
ich finde da nämlich nichts....

mkinzler 29. Jul 2009 15:32

Re: Probleme bei SerienTerminen von einem Kalender
 
Den letzten Tag eines Monats kann man mit EndOfTheMonth() ermitteln. Den Wochentag eines Datums mit
DayOfTheWeek(). Dann kannst du überprüfen ob der letzte Tag vor dem Mittwoch ist ( dann musst du den Mittoch der Vorwoche nehmen, sonst den Mittwoch dieser Woche)

DeddyH 29. Jul 2009 15:48

Re: Probleme bei SerienTerminen von einem Kalender
 
Ich habe den verlinkten Source mal übersetzt (hoffentlich richtig).
Delphi-Quellcode:
uses DateUtils;

type TWeekDay = DayMonday..DaySunday;

function LastDayOfWeekOfMonth(year,month: Integer;DayOfWeek: TWeekDay): TDate;
var temp: TDate;
begin
  temp := IncMonth(EncodeDateTime(year,month,1,0,0,0,0));
  Result := IncDay(temp,(DayOfWeek - DayOfTheWeek(temp) + 7) mod 7 - 7);
end;

Jürgen Thomas 29. Jul 2009 16:09

Re: Probleme bei SerienTerminen von einem Kalender
 
Hallo DeddyH,

soweit ich es sehe, hast du es im Prinzip richtig übersetzt. Nur mit dem Typ TWeekDay habe ich Zweifel. Unter C# gilt:
Zitat:

Die DayOfWeek-Enumeration ... zählt von 0 für Sonntag bis 6 für Samstag.
Also müsste es unter Delphi genauso gehen, weil Aufzählungstypen ebenfalls bei 0 anfangen:
Delphi-Quellcode:
type TWeekDay = DaySunday..DaySaturday;
Jürgen

DeddyH 29. Jul 2009 16:21

Re: Probleme bei SerienTerminen von einem Kalender
 
Ich habe es mal ausprobiert und es scheint zu funktionieren, da ich ja DayOfTheWeek benutze.

gangs-taas 29. Jul 2009 16:41

Re: Probleme bei SerienTerminen von einem Kalender
 
danke
ich guck mir das morgen in ruhe an und versuch es nachzuvollziehen ^^

danke ^^

DeddyH 29. Jul 2009 16:43

Re: Probleme bei SerienTerminen von einem Kalender
 
Zitat:

Zitat von gangs-taas
danke
ich guck mir das morgen in ruhe an und versuch es nachzuvollziehen ^^

danke ^^

Willst Du Dir das wirklich antun? :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:16 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz