2016-04-16 15 views
1

たとえば、月曜日から金曜日10hs-18hs、商取引が開いているかどうかの機能チェックなど、商取引が開いている時間間隔をモデル化する必要があります。最も合理的なのは、Jodaが提供するクラス「インターバル」を使用していると思いますが、間隔を数日または数時間だけインスタンス化することはできません。私はJodaを使わなければならない。 IntervalJava - Jodaとの時間間隔を定義する

+0

のStackOverflowへようこそ!コードや何かのような努力をして、人々があなたの問題を早期に理解して助けることができるように、あなたの質問を精緻化してください。ありがとう! – manetsus

答えて

2

引用Javadocは:

時間間隔2つの瞬間間の時間を表します。

"Monday at 10:00"は即時ではないため、Intervalを使用することはできません。

Joda-Timeライブラリには、目的のクラスがないため、自分で書き込む必要があります。

「JODAを使用する必要があります」という条件は、クラスが入力としてLocalDateTimeを受け取り、Joda-Timeを使用して平日と時刻を照会することを意味します。 (例えばOpenCalendarと呼ばれる)


良い再利用可能なクラスは、次のように使用されることがあります。

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

元のポスターには、Joda-Time [Duration](http://www.joda.org/joda-time/apidocs/org/joda/time/Duration.html)と[Period](http:// www.joda.org/joda-time/apidocs/org/joda/time/Period.html)の使用クラスで、両方ともタイムラインに結び付けられていない期間をキャプチャします。 –

関連する問題