2016-04-16 7 views
1

Ich habe Intervalle der Zeit modellieren, dass ein Commerce geöffnet ist, zum Beispiel: Montag bis Freitag 10hs-18hs, und mit einer Funktion prüfen, ob der Handel geöffnet ist oder nicht. Ich denke, am rationalsten ist die Verwendung der Klasse "Interval", die Joda anbietet, aber ich kann ein Intervall nicht nur mit Tagen oder Stunden instanziieren. Ich muss Joda benutzen.Java - Definieren Sie Zeitintervalle mit Joda

+0

zu Stackoverflow! Können Sie bitte Ihre Frage mit Ihrem Aufwand wie Code oder etwas, so dass Leute Ihr Problem früh bekommen und Ihnen helfen können? Vielen Dank! – manetsus

Antwort

2

Zitiert Javadoc- von Interval:

Ein Zeitintervall für eine Zeitdauer zwischen zwei Zeitpunkten .

Da "Montag um 10:00" ist kein Augenblick, können Sie Interval nicht verwenden.

Die Joda-Time-Bibliothek hat keine Klasse für das, was Sie wollen, also müssen Sie es selbst schreiben.

Die Anforderung "einfach JODA verwenden" bedeutet, dass Ihre Klasse eine LocalDateTime als Eingabe verwenden und Joda-Time für die Abfrage des Wochentags und der Uhrzeit verwenden soll.


Eine gute wiederverwendbare Klasse (z OpenCalendar genannt) könnte wie folgt verwendet werden:

Willkommen
OpenCalendar openCal = new OpenCalendar(); 
openCal.add(DateTimeConstants.MONDAY , new LocalTime(10, 0), new LocalTime(18, 0)); 
openCal.add(DateTimeConstants.TUESDAY , new LocalTime(10, 0), new LocalTime(18, 0)); 
openCal.add(DateTimeConstants.WEDNESDAY, new LocalTime(10, 0), new LocalTime(18, 0)); 
openCal.add(DateTimeConstants.THURSDAY , new LocalTime(10, 0), new LocalTime(18, 0)); 
openCal.add(DateTimeConstants.FRIDAY , new LocalTime(10, 0), new LocalTime(18, 0)); 

LocalDateTime now = LocalDateTime.now(); 
if (openCal.isOpen(now)) { 
    // code here 
} 
+0

Das Original-Poster kann auch die Joda-Time [Dauer] (http://www.joda.org/joda-time/apidocs/org/joda/time/Duration.html) und [Zeitraum] (http: // (http://www.joda.org/joda-time/apidocs/org/joda/time/Period.html) Benutzungsklassen, die beide eine Zeitspanne erfassen, die nicht an die Zeitlinie gebunden ist. –

Verwandte Themen