0

パスワードの有効期限が切れているかどうかを確認する必要があります。彼が過去 30 日間パスワードを変更していない場合は、パスワードのリセットを依頼する必要があります。これが私のコードです。

   Date lastPasswordModifiedDate =new SimpleDateFormat("MM/dd/yyyy").parse("10/30/2013");
    if (lastPasswordModifiedDate == null)
    {           
        Calendar cal = Calendar.getInstance();
        cal.setTimeInMillis(0);
        lastPasswordModifiedDate = cal.getTime();
    }

    Calendar lastPasswordChangeCal = GregorianCalendar.getInstance();
    lastPasswordChangeCal.setTime(lastPasswordModifiedDate);
    Date today = new Date();
    lastPasswordChangeCal.add(Calendar.DAY_OF_MONTH,  -30); //max 30 dates to expire
    Date expireDate = lastPasswordChangeCal.getTime();
    System.out.println(expireDate);  //last password changed date
    System.out.println(today);  //today date - I changed in my system
    System.out.println(today.after(expireDate));

これを印刷すると

    System.out.println(expireDate);
    System.out.println(today);
    System.out.println(today.after(expireDate));
    Mon Sep 30 00:00:00 IST 2013
    Tue Oct 30 22:07:44 IST 2012
    false

lastPasswordModifiedDate > 30 日または null の場合、true が返されるはずです。

4

2 に答える 2

1

システム時刻を に変更したTue Oct 30 22:07:44 IST 2012ため、これらのステートメントは

System.out.println(expireDate);  //last password changed date
System.out.println(today);  //today date - I changed in my system
System.out.println(today.after(expireDate));

これらの出力を印刷する

Mon Sep 30 00:00:00 IST 2013
Tue Oct 30 22:07:44 IST 2012
false

あなたはexpireDatetodayではないので。afterまた、システムの日付を に変更しない2012と、最後のステートメントが に出力されますtrue。だから、私はあなたがそれを正しくやっていると思います、あなたはただチェックする必要があります:

if(today.after(expireDate)){
// Change Password
} else {
// proceed
}
于 2013-10-30T17:09:55.090 に答える
1

変更されたコード:

Calendar cal = Calendar.getInstance();
Date today = cal.getTime();

if(lastPasswordModifiedDate == null)
// put today in database as lastModifiedDate and return

Date lastPasswordModifiedDate =new SimpleDateFormat("MM/dd/yyyy").parse("10/30/2013");
lastPasswordModifiedDate.add(Calendar.DAY_OF_MONTH,  30); //max 30 dates to expire
if(today.after(lastPasswordModifiedDate))
// password expired
else
// password valid
于 2013-10-30T16:53:06.217 に答える