2017-08-11 15 views
3

まず、Java 7を使用する必要があるため、代わりにSE8 Timeを使用することはできません。Joda時間の長さが0秒であるかどうかを調べる

次のように私は期間のリストを持っている:

List<Duration> durations; 

は、これらの値のほとんどは、約8時間の長さであるが、いくつかはゼロ(意図的に)されています。 0日、0分、0秒、0ミリ秒であることを確認するにはどうすればよいですか?次のように各メソッドをチェックする必要がありますか、それともニアメソッドがありますか?

for(Duration duration : durations){ 
    if(duration.getStandardDays() == 0 && 
     duration.getStandardHours() == 0 && 
     duration.getStandardSeconds() == 0){ 
     //do something 
    } 
} 

私が尋ねる理由は、私はAPIの定数ZEROがあります注意してください、と私はこれは何とかそれにリンクされているとしています。代わりにそれをどのように比較するのですか?または私はすべきですか?

http://joda-time.sourceforge.net/apidocs/org/joda/time/Duration.html

答えて

6

あなたはミリ秒単位で、期間の長さを返しますgetMillis()

if (duration.getMillis()==0) 

を行うことができるはず。

+0

私はgetMills()が秒、分、時間、日などを除いてミリ秒を取得すると仮定していましたが、それはgetStandardDays()、getStandardHours()などの形式に従っていないので意味があります。あなたの答えを受け入れるでしょう - ありがとう! –

1

ThreeTen-Backport

Joda-Timeプロジェクトはメンテナンスモードになりました。チームはjava.timeクラスへの移行をアドバイスしています。

Java 8以降のjava.timeの機能の多くは、ThreeTen-BackportプロジェクトのJava 6およびJava 7にバックポートされています。

org.threeten.backport.Durationクラスは、ゼロ長さをテストする方法としてisZeroを提供しています。

myDuration.isZero() 
関連する問題