Hallo Forum,
ich möchte eine kleine Anwendung realisieren und würde gerne ein paar Meinungen dazu einholen.
Folgendes soll mein Programm tun (gekürtzt auf das was noch zu machen ist):
- Es gibt drei Zeiten (z1, z2, z3) zu denen das Programm starten soll. Dabei ist es unabhängig welcher Tag (Woe, Werktag, etc.) herrscht.
- Egal wann das Programm gestartet wird (zeitlich) soll geprüft werden, welches der kleinste Abstand zur nächst näheren Zeit ist. Dieses soll dann die nächste Startzeit des Programms sein (Bsp.: z1= 05:00, z2=10:00, z3= 18:00; Programm wird um 04:00 gestartet, dann soll das Programm erstmals um z1 starten, dann aber immer automatisch die Zeiten z1, z2, z3 durchlaufen. Das jeden Tag aufs neue)
Folgende Klassen habe ich mal identifiziert, die für mich in Frage kommen (nach meiner Ansicht):
- GregorianCalendar
- SimpleDateFormat
- Timer
Ich bin mir nicht sicher was am besten ist das zu realisieren. Soll man dafür Objekte von GregorianCalendar erzeugen und dann vergleichen?
--> drei Objekte erstellen: firstRun, secondRun, thirdRun. Aktuelles Datum lesen und dann die drei Objekte mit den entsprechenden Zeiten (Jahr, Tag, Monat) erstellen. Man müßte dann allerdings immer nach "Ablauf" einer Zeit das Objekt neu erstellen, sprich wenn einmal 2005-10-4-z1 abgelaufen muss ja 1005-10-5-z1 generiert werden usw.
-->oder erstellt man es mit Timer und nutzt die dazugehörigen Methode
Hier müßte man ja nur einmal das aktuelle Datum ermitteln und ein Datum übergeben, wann es das erstemal loslaufen soll. Allerdings kann man hier nur eine "period" übergeben. Dann muss ich entweder drei Threads erzeugen oder genau den gleichen Abstand zwischen z1,...,z3 haben. Wobei natürlich drei Threads einfach sind :wink:
Wie würdet ihr das machen? Oder gibt es noch was viel besseres? Ich nehme gerne jeden Vorschlag an
Thx
Fry
ich möchte eine kleine Anwendung realisieren und würde gerne ein paar Meinungen dazu einholen.
Folgendes soll mein Programm tun (gekürtzt auf das was noch zu machen ist):
- Es gibt drei Zeiten (z1, z2, z3) zu denen das Programm starten soll. Dabei ist es unabhängig welcher Tag (Woe, Werktag, etc.) herrscht.
- Egal wann das Programm gestartet wird (zeitlich) soll geprüft werden, welches der kleinste Abstand zur nächst näheren Zeit ist. Dieses soll dann die nächste Startzeit des Programms sein (Bsp.: z1= 05:00, z2=10:00, z3= 18:00; Programm wird um 04:00 gestartet, dann soll das Programm erstmals um z1 starten, dann aber immer automatisch die Zeiten z1, z2, z3 durchlaufen. Das jeden Tag aufs neue)
Folgende Klassen habe ich mal identifiziert, die für mich in Frage kommen (nach meiner Ansicht):
- GregorianCalendar
- SimpleDateFormat
- Timer
Ich bin mir nicht sicher was am besten ist das zu realisieren. Soll man dafür Objekte von GregorianCalendar erzeugen und dann vergleichen?
--> drei Objekte erstellen: firstRun, secondRun, thirdRun. Aktuelles Datum lesen und dann die drei Objekte mit den entsprechenden Zeiten (Jahr, Tag, Monat) erstellen. Man müßte dann allerdings immer nach "Ablauf" einer Zeit das Objekt neu erstellen, sprich wenn einmal 2005-10-4-z1 abgelaufen muss ja 1005-10-5-z1 generiert werden usw.
-->oder erstellt man es mit Timer und nutzt die dazugehörigen Methode
Code:
scheduleAtFixedRate(TimerTask task, Date firstTime, long period)
Wie würdet ihr das machen? Oder gibt es noch was viel besseres? Ich nehme gerne jeden Vorschlag an
Thx
Fry