私はJavaが初めてです。2 つの Timestamp オブジェクトdateFrom
とdateTo
. がよりdateFrom
45 日早いかどうかを確認したいdateTo
。このコードフラグメントを使用してこれを比較しました
if(dateFrom.compareTo(dateTo) < 45)
{
// do the action;
}
コードで指定されたものと混同して45
います。正しい結果を期待できますか。それは私の結果を満たしていますか?
少し論理的に考える必要があります。まず、日付の 45 日前のタイムスタンプを取得する必要がありdateTo
ます。時間にはさまざまな単位 (秒、分、時間、日) があるため< 45
、この場合は確認するだけでは意味がありません。このcompareTo()
メソッドは、タイムスタンプが他のタイムスタンプの前か後かを知るために注文するためのものです。
Calendar
最初にタイムスタンプの を作成し、45 日までにadd()を作成できます。 dateFrom
その後、before()メソッドを使用して、 before かどうかを確認できdateFrom
ますdateTo
。
このようにしてください
Date dateFrom ="your from date";
Calendar cal = GregorianCalendar.getInstance();
cal .setTime(dateFrom);
cal.add(Calendar.DAY_OF_MONTH, 45);
Date expireDate = cal.getTime();
Date dateTo = new Date();
if(dateTo.after(expireDate)){
}
Joda Time または Calendar クラスを使用します (dateFrom に 45 日を追加し、結果を dateTo と比較します)。