비밀번호를 변경한지 30일이 지나면 비밀번호를 바꾸라는 알림창을 띄우려고한다.
우선 30일을 계산하는 코드를 만들어보려고한다.
회원가입 시 DB테이블에 업데이트가 되는 날짜부분을 넣어주고
updatedate TIMESTAMP NOT NULL
DEFAULT current_timestamp() ON UPDATE current_timestamp()
이 코드를 MariaDB에 넣어주면
// 날짜 데이터 방식 바꾸는법
SELECT DATE_FORMAT('2023-02-21 17:57:39', '%Y-%m-%d') DATEONLY
// 가지고 있는 DB 내용에서 가져와서 바꾸기
SELECT date_format(updatedate, '%Y-%m-%d') FROM tbl_user WHERE user_id='admin';
결과 : 2023-02-21 이런식으로 나오게 되는데 이걸 이용해서 s_date 부분에 넣어주고 계산을 하면된다.
/* 30일 이후 비밀번호 변경 */
public void thirtyDaysChange() throws Exception, ParseException {
try {
Calendar getToday = Calendar.getInstance();
getToday.setTime(new Date()); //금일 날짜
String s_date = "2020-03-01";
Date date = new SimpleDateFormat("yyyy-MM-dd").parse(s_date);
Calendar cmpDate = Calendar.getInstance();
cmpDate.setTime(date); //특정 일자
long diffSec = (getToday.getTimeInMillis() - cmpDate.getTimeInMillis()) / 1000; // 초 차이
long diffDays = diffSec / (24 * 60 * 60); // 일 차이
//logger.info(diffSec + "초 차이");
//logger.info(diffDays + "일 차이");
int days = (int) diffDays;
if (days == 30) {
/* 비밀번호를 바꾼다 */
}
} catch (Exception e) {
logger.info("error : " + e.getMessage());
e.printStackTrace();
}
}
참고문서
https://jul-liet.tistory.com/180 -> sql
https://myhappyman.tistory.com/128 -> java
https://developer-talk.tistory.com/643 -> java
https://coding-factory.tistory.com/737 -> java
https://gurtn.tistory.com/113 -> js