Hallo zusammen,
ich möchte gerne folgendes realisieren:
Ich definiere wann ein Schedule laufen darf.
Hierzu habe ich eine Klasse "Schedule" mit folgenden Attributen.
Aufgeteilt ist das in Tage wann der Schedule laufen darf und in der Zeit wann der Schedule laufen darf.
Bei der Zeit gibt es verschiedene Optionen:
- IMMEDIATELY -> Sofort
- SPECIFIC_TIME, // Spezielle Uhrzeit (wird dann in sendTimeSpecific gespeichert)
- ONLY_BETWEEN, // Nur Zwischen(wird dann in sendTimeFrom / sendTimeUntil gespeichert)
Was ich nun prüfen möchte, ob eine entsprechende Zeit den eingestellten Kriterien entspricht.
Calendar calendar = Calendar.getInstance();
int currentDayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
-> So kann ich ja den Wochentag prüfen.
Nun kann es aber sein, dass der Wochentag richtig ist, aber die Zeit nicht passt (im Vergleich zur jetztigen Zeit). Dann soll die nächstmögliche Option gefunden werden. Hier hängt es gerade an meiner Logik und ich weiß nicht so genau wie ich das realisieren kann.
Bspw:
Schedule soll jeden Montag und Samstag um 11:00 Uhr laufen
Derzeitige Zeit:
Wochentag = Samstag
Uhrzeit = 11:15 Uhr
-> Das heißt der Wochentag passt, aber die Uhrzeit passt nicht. D.h. der Schedule soll frühestens wieder am Montag, 11:00 Uhr laufen.
if (schedule.isSunday() && dayOfWeek == 0) {
// Prüfe Zeit
}
if (schedule.isMonday() && dayOfWeek == 1) {,
// Prüfe Zeit
}
Gerade auch mit der Logik wenn Samstag ist (weekDay == 6) dann wieder bei 0 anzufangen tue ich mir schwer.
Kann mir hier jemand weiterhelfen?
ich möchte gerne folgendes realisieren:
Ich definiere wann ein Schedule laufen darf.
Hierzu habe ich eine Klasse "Schedule" mit folgenden Attributen.
Aufgeteilt ist das in Tage wann der Schedule laufen darf und in der Zeit wann der Schedule laufen darf.
Bei der Zeit gibt es verschiedene Optionen:
- IMMEDIATELY -> Sofort
- SPECIFIC_TIME, // Spezielle Uhrzeit (wird dann in sendTimeSpecific gespeichert)
- ONLY_BETWEEN, // Nur Zwischen(wird dann in sendTimeFrom / sendTimeUntil gespeichert)
Java:
///////////////
//// DAY //////
///////////////
private boolean monday = true;
private boolean tuesday = true;
private boolean wednesday = true;
private boolean thursday = true;
private boolean friday = true;
private boolean saturday = true;
private boolean sunday = true;
///////////////
//// TIME //////
///////////////
// TimeType
public enum TimeType {
IMMEDIATELY, // Sofort
SPECIFIC_TIME, // Spezielle Uhrzeit
ONLY_BETWEEN, // Nur zwischen Uhrzeit
}
private String timeType = CampaignType.EMAIL.toString();
private Date sendTimeSpecific;
private Date sendTimeFrom;
private Date sendTimeUntil;
Was ich nun prüfen möchte, ob eine entsprechende Zeit den eingestellten Kriterien entspricht.
Calendar calendar = Calendar.getInstance();
int currentDayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
-> So kann ich ja den Wochentag prüfen.
Nun kann es aber sein, dass der Wochentag richtig ist, aber die Zeit nicht passt (im Vergleich zur jetztigen Zeit). Dann soll die nächstmögliche Option gefunden werden. Hier hängt es gerade an meiner Logik und ich weiß nicht so genau wie ich das realisieren kann.
Bspw:
Schedule soll jeden Montag und Samstag um 11:00 Uhr laufen
Derzeitige Zeit:
Wochentag = Samstag
Uhrzeit = 11:15 Uhr
-> Das heißt der Wochentag passt, aber die Uhrzeit passt nicht. D.h. der Schedule soll frühestens wieder am Montag, 11:00 Uhr laufen.
if (schedule.isSunday() && dayOfWeek == 0) {
// Prüfe Zeit
}
if (schedule.isMonday() && dayOfWeek == 1) {,
// Prüfe Zeit
}
Gerade auch mit der Logik wenn Samstag ist (weekDay == 6) dann wieder bei 0 anzufangen tue ich mir schwer.
Kann mir hier jemand weiterhelfen?