Autor Beitrag
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Do 16.11.06 15:39 
Hallo!

Ich suche nach einer eleganten Möglichkeit, wiederkehrende Termine zu speichern. Ein solcher Termin besteht aus drei Angaben:
  • Startdatum
  • Enddatum
  • Häufigkeit

Probleme bereitet nur das Letztere. Denn das kann z.B. sein "jeden ersten Montag im Monat" oder "jeden 10. im Monat" oder "jeden Dienstag" oder "im Abstand von 12 Tagen".

Hat jemand 'ne Idee, wie ich das möglichst clever speichern kann?

Meine Idee wäre ein Basistyp, der Start- und Enddatum speichert und eine abstrakte Methode "getNextOccurence" besitzt, welche dann von abgeleiteten Typen (je nachdem, welches Schema verwendet werden soll) überschrieben wird. Ein abgeleiteter Typ könnte dann z.B. "ByDaysBetween" heißen, der stellt dann einen Termin dar, der z.B. alle 12 Tage eintritt.

Aber wirklich toll finde ich das nicht :-/

Ich habe ja die Hoffnung, dass es einen Datentypen dafür gibt, denn mein PocketPC kann bei wiederkehrenden Terminen solche Angaben verarbeiten. Also besteht die Chance, dass es da im Compact Framework und damit auch im großen Framework was passendes gibt.

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6386
Erhaltene Danke: 146

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Do 16.11.06 16:45 
Ich meine mal eine Lösung dazu gesehen zu haben.
afair wurde immer intern ausgerechnet, wann der nächste Termin ist. Wurde dieser erreicht, hat man anhand der Einstellung den nächsten Termin errechnet u.s.w.
Dadurch kann man immer einen fixen Termin verwalten. Nur bei Termin erreicht oder überschritten, musste dann etwas gemacht werden (Neue Wiedervorlage).
Eine Speicherung des Termintyps hätte ich in Delphi als varianten Record genommen oder etwas entsprechendes. Bei .NET habe ich im Moment auch keine geniale Idee.