Wiederkehrende Termine
Moderator: Moderatoren
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2470
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Wiederkehrende Termine
Ich habe einen Kalender mit Terminen die sich jedes jahr wiederholen und wenn möglich
immer am gleichen Datum stattfinden sollen.
z.B. Freitag 05.12.14 soll wenn möglich auch 2015 am 05.12.2014 stattfinden, was
allerdings ein Samstag wäre und somit kein Werktag.
Wie könnte ich die ganzen Termine vom Dezember 2014 in Dezember 2015 verschieben
ohne dabei Termine auf Samstag/Sonntag zu verschieben.
Eventuell hat jemand so was schon gemacht und kann mir einen Tipp geben.
immer am gleichen Datum stattfinden sollen.
z.B. Freitag 05.12.14 soll wenn möglich auch 2015 am 05.12.2014 stattfinden, was
allerdings ein Samstag wäre und somit kein Werktag.
Wie könnte ich die ganzen Termine vom Dezember 2014 in Dezember 2015 verschieben
ohne dabei Termine auf Samstag/Sonntag zu verschieben.
Eventuell hat jemand so was schon gemacht und kann mir einen Tipp geben.
Gruß
Klaus
Klaus
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Wiederkehrende Termine
Das Jahr um eins erhöhen und das Datum mit dow() auf Samstag prüfen, dann entweder -1 oder +2
eventuell noch die Feiertage des Jahres prüfen
eventuell noch die Feiertage des Jahres prüfen
Gruß
Hubert
Hubert
- Jan
- Marvin
- Beiträge: 14655
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Wiederkehrende Termine
Ich hätte jetzt das Gleiche gesagt wie Hubert. Aber es gibt da meiner Meinung nach zwei Probleme:
- Wenn der Termin immer wieder auf einen Wochenendtag fällt, schiebt der sich von jahr zu jahr immer weiter nach hinten. Wäre das OK?
- Was ist mit Feiertagen? Die kann man so einfach nicht festsellen. das braucht eine Kombination aus einer Aufstellung fester Feiertage (Allerheiligen, 3. Oktober, Heiligabend liegen immer auf exakt dem gleichen Datum), und den meisten kirchlichen Feiertagen. Die sind nahezu komplett abhängig von einer korrekten Osterberechnung.
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Wiederkehrende Termine
Die Osterberechnung hab ich irgendwo ... wenn nötig kann ich das suchen.
Die Verschiebung ist entweder nach hinten oder nach vorne, da könnte man auch variabel sein je nach Anforderung, aber in einen sauren Apfel muss man beißen
Die Verschiebung ist entweder nach hinten oder nach vorne, da könnte man auch variabel sein je nach Anforderung, aber in einen sauren Apfel muss man beißen
Gruß
Hubert
Hubert
- Jan
- Marvin
- Beiträge: 14655
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Wiederkehrende Termine
Ich hab auch eine Osterberechnung, die ich intensiv nutze. Ein Kunde von mir verschickt Pflanzen, was natürlich vor Feiertagen und langen Wochenenden nicht geht - das überleben die so lange im Karton nicht. Deswegen gibt es da die Kombination aus einer Tabelle fester Feiertage und der Osterberechnung. Und für die Familienforschung brauch ich das ohenhin, weil die Pfarrer immer gerne den Namen des Sonntags in die Urkunden eingetragen haben, und nicht das Datum.
Das Problem mit den Feiertagen, gerade den kirchlichen, ist, das die nicht überall gleich sind. Viele davon gelten nur in katholischen Bundesländern. Da muß man also schauen ob ein entsprechender Unterscheidungsbedarf besteht.
Jan
Das Problem mit den Feiertagen, gerade den kirchlichen, ist, das die nicht überall gleich sind. Viele davon gelten nur in katholischen Bundesländern. Da muß man also schauen ob ein entsprechender Unterscheidungsbedarf besteht.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2470
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Wiederkehrende Termine
Nur mal so am Rande:
In meinem Terminkalender werden die gesetzlichen Feiertage angezeigt und auch die "lokalen" entsprechend dem Bundesland
in dem der Kunde ist.
@Jan,
es soll wie im Beispiel der Termin immer am 05.12.
sein.
In meinem Terminkalender werden die gesetzlichen Feiertage angezeigt und auch die "lokalen" entsprechend dem Bundesland
in dem der Kunde ist.
@Jan,
es soll wie im Beispiel der Termin immer am 05.12.
sein.
Gruß
Klaus
Klaus
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Wiederkehrende Termine
Code: Alles auswählen
es soll wie im Beispiel der Termin immer am 05.12.
Geburtstage z.B. müssen natürlich vom Termin auf immer dem gleichen Tag lauten,
aber man könnte wenn man wollte die Anzeige auf den Werktag davor setzen, falls es aufs Wochenende fällt.
So würde der Termin nicht "wandern", und in der Anzeige würde man z.B. sehen "Klaus hat am ... Geburtstag" aber eben am Tag zuvor ...
Diese Logik musst du dir überlegen was am Besten passt. Bankzahltage etc. haben andere Regeln als Geburtstage ...
Die grundlegende Funktion bleibt aber gleich !
Code: Alles auswählen
dDate := DatumAddJahr(date())
function DatumAddJahr(dDatum,nAnzJahr)
local cDate
if empty(nAnzJahr)
nAnzJahr := 1
endif
cDate := left(dtoc(dDatum),6)+right(strZero(nAnzJahr,10),4)
return ctod(cDate)
Gruß
Hubert
Hubert
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Wiederkehrende Termine
Eine Systematik, die ich in irgendeinem Modul für solche Termine verwende, besteht darin, sie mit einer "falschen" Jahreszahl zu speichern, die aber für ein Schaltjahr (!) gelten sollte, also beispielsweise das Jahr 2196. Bei allen Terminprüfungen (z.B. für heute, also den 11.09.) wird zusätzlich geprüft, ob ein Termin für den entsprechenden Tag (also den 11.09.2196) gefunden wird. Wenn das der Fall ist, hängt die Betrachtung des Termins davon ab, ob es ein unbeweglicher Termin ist (Geburtstag) und dann noch, ob es zufällig um den 29.02. geht, wofür dann per Voreinstellung entschieden werden kann, ob der vorige (28.02.) oder der folgende Tag (01.03.) betrachtet wird, wenn das aktuelle Jahr kein Schaltjahr ist. Bei beweglichen Terminen (nur Werktage) muss die Prüfung auf drei Tage im Voraus und in der Vergangenheit erweitert werden, wenn sie z.B. nur an Werktagen stattfinden dürfen. Dafür gibt's dann Funktionen, die ermitteln, ob ein Tag ein Werktag, ein Feiertag, ein Sonntag oder ein Samstag ist. Je nach hinterlegter Regel verschiebt man dann den Quelltermin bzw. legt ihn beim Kopieren entsprechend an.
Herzlich,
Tom
Tom
- Koverhage
- Der Entwickler von "Deep Thought"
- Beiträge: 2470
- Registriert: Fr, 23. Dez 2005 8:00
- Wohnort: Aalen
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Re: Wiederkehrende Termine
@Hubert,
Der Termin soll immer am 05.12. sein ausgenommen hiervon natürlich das Wochende.
In dem Beispiel müsste also der neue Termin entweder am 04.12. stattfinden oder am 07.12.
In Deiner Function addierst Du ja nur ein Jahr. Das ist schon klar. Danach muss ich mit day of week testen ob Samstag, Sonntag oder Feiertag ist.
Das schwierige ist ob ich vom Datum alle Termine vom 05.12. einen Tag zurücksetze, oder 2 Tage vorsetze.
Ja oer ich habe mich falsch ausgedrückt.das und die Aussage "nicht am Wochenende" von vorher beißt sich, habe ich da was missverstanden ?
Der Termin soll immer am 05.12. sein ausgenommen hiervon natürlich das Wochende.
In dem Beispiel müsste also der neue Termin entweder am 04.12. stattfinden oder am 07.12.
In Deiner Function addierst Du ja nur ein Jahr. Das ist schon klar. Danach muss ich mit day of week testen ob Samstag, Sonntag oder Feiertag ist.
Das schwierige ist ob ich vom Datum alle Termine vom 05.12. einen Tag zurücksetze, oder 2 Tage vorsetze.
Gruß
Klaus
Klaus
- Jan
- Marvin
- Beiträge: 14655
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Wiederkehrende Termine
Hallo klaus,
OK, jetzt versteh ich das. Du hast also eine dbf, in der die Temrine drin stehen, und in der Planung für das komende Jahr wird der Tag gesucht, der dazu passt. Also direkt der Tag, wenn es nicht Wochenende oder Feiertag ist, und ansonsten so wenig wie möglich verschieben.
Ich hatte Dich so verstanden, das die Termine des kommenden Jahres anhand der Termine dieses Jahres berechnet werden sollen - Du hattest gesagt, Du hast einen Kalender, von ener dbf war keine Rede gewesen. Dann hätte es die von mir angedeuteten Verschiebungen geben könnne.
Jan
OK, jetzt versteh ich das. Du hast also eine dbf, in der die Temrine drin stehen, und in der Planung für das komende Jahr wird der Tag gesucht, der dazu passt. Also direkt der Tag, wenn es nicht Wochenende oder Feiertag ist, und ansonsten so wenig wie möglich verschieben.
Ich hatte Dich so verstanden, das die Termine des kommenden Jahres anhand der Termine dieses Jahres berechnet werden sollen - Du hattest gesagt, Du hast einen Kalender, von ener dbf war keine Rede gewesen. Dann hätte es die von mir angedeuteten Verschiebungen geben könnne.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Wiederkehrende Termine
das hat nix mit Programmierung zu tun, das ist eine fachliche Frage ... was würde ein Mensch der sich auskennt in dieser Situation tunKoverhage hat geschrieben:Das schwierige ist ob ich vom Datum alle Termine vom 05.12. einen Tag zurücksetze, oder 2 Tage vorsetze.
Gruß
Hubert
Hubert
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2936
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Wiederkehrende Termine
Lieber vorziehen, dann kann man ihn immer noch nach hinten verschieben. Aber so etwas sollte man über eine Option dem Kunden überlassen.
Aber das was Tom schrieb ist wichtig, das Ursprungsdatum 5.12. lassen, sonst wandert der Termin von Jahr zu Jahr evtl. immer weiter vor.
Aber das was Tom schrieb ist wichtig, das Ursprungsdatum 5.12. lassen, sonst wandert der Termin von Jahr zu Jahr evtl. immer weiter vor.
Viele Grüße
Wolfgang
Wolfgang