経過時間を決定するためのGregorianCalendarのインスタンスを使用していますか?

コールメルツ:

私は効果的にキャンプ場の予約システムである私のCIS 163クラスのプロジェクトに取り組んでいます。コードの大部分は、提供されたと私はちょうどそれに特定の機能を追加する必要があります。現在、私は2つの異なるGregorianCalendarのインスタンスとの間を通過したどのくらいの時間を決定できるようにする必要がある日に代表される(1が現在の日付であること、もう一つは「チェックアウト」の所定のもの)。私はこれを行うにはかなりの方法を見つけ出すことができていない、とここで誰かが私を助けることができるかもしれません期待していました。

fwerther:

GregorianCalendarを古いですし、あなたが本当にもうそれを使うべきではありません。それは面倒だったとJava 8以来、「新しい」java.timeモジュールに置き換えられました。

それでも、あなたは簡単に計算時間のように、日付の間にミリ秒を使用しての可能性、GCのインスタンスを使用して比較する必要がある場合:

GregorianCalendar date1 = new GregorianCalendar();
GregorianCalendar date2 = new GregorianCalendar();

// Adding 15 days after the first date
date2.add(GregorianCalendar.DAY_OF_MONTH, 15);
long duration = (date2.getTimeInMillis() - date1.getTimeInMillis() )
                         / ( 1000 * 60 * 60 * 24) ;
System.out.println(duration);

新しいタイムAPIを使用したい場合は、次のコードは動作します。

LocalDate date1 = LocalDate.now();
LocalDate date2 = date1.plusDays(15);

Period period = Period.between(date1, date2);
int diff = period.getDays();
System.out.println(diff);

あなたは(あなたがレガシーコードで作業しているなど)のタイプの間で変換する必要がある場合、あなたはこのようにそれを行うことができます。

LocalDate date3 = gcDate1.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
LocalDate date4 = gcDate2.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();

また、私はかなり確信して、この質問だったな、すまんすまんので必ず尋ねる前に、適切に検索します、何度も尋ねたとされています。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=350194&siteId=1