重複の可能性:
Javaで日付を減算するにはどうすればよいですか?
Java デスクトップ アプリケーションを作成しています。そのアプリケーションで、ユーザーはいくつかの日付を入力します。だから私はサードパーティのライブラリ「jCalendar.jar」を使います。検証のために、2 つの日付を減算します。Javaで2つの日付を減算する方法はありますか?
重複の可能性:
Javaで日付を減算するにはどうすればよいですか?
Java デスクトップ アプリケーションを作成しています。そのアプリケーションで、ユーザーはいくつかの日付を入力します。だから私はサードパーティのライブラリ「jCalendar.jar」を使います。検証のために、2 つの日付を減算します。Javaで2つの日付を減算する方法はありますか?
Java はあまり提供しません。オープン ソースを見ることができます: JODAを試してください。
DateTime dt1 = new DateTime(2000, 1, 1, 0, 0, 0, 0);
DateTime dt2 = new DateTime(2010, 1, 1, 0, 0, 0, 0);
int noOfdays = Days.daysBetween(dt1, dt2).getDays();
Java での日付処理の事実上の標準であるJoda Timeを参照することをお勧めします。java.util.Dates
、javaDate1
、およびの 2 つが与えられた場合javaDate2
:
DateTime d1 = new DateTime(javaDate1);
DateTime d2 = new DateTime(javaDate2);
Period diff = new Period(d1, d2);
これで、オブジェクトの違いをクエリして、diff
その構成要素 (年、月、日など) に分割できます。詳細については、Joda Time period ガイドを参照してください。
Java Date または Java Calendar を使用している場合は、次のようなものを使用できます。
Calendar firstOperand = new GregorianCalendar();
Calendar secondOperand = new GregorianCalendar();
Calendar result = new GregorianCalendar();
result.setTimeInMillis(firstOperand.getTimeInMillis() - secondOperand.getTimeInMillis());
編集:コメントで指摘されているように、結果をカレンダーに保存することはあまり意味がありません。返されたミリ秒は引き続き操作に使用できます。
可能であれば、 JODAなどのライブラリを使用してこれを処理することもできます。
java.util.GregorianCalendarを使用できます
このクラスのインスタンスを作成し、setTime() メソッドを呼び出して日付を設定します。最後に、このクラスのメソッドを使用します。