私はJavaが初めてです。2 つの Timestamp オブジェクトdateFromとdateTo. がよりdateFrom45 日早いかどうかを確認したい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 と比較します)。