본문 바로가기
개발자의 공부방/프로젝트 일지

프로젝트] 날짜 구하기 feat. 비밀번호 90일 만료 기간 설정하기.

by 쌈빡한 쥬니준 2021. 1. 14.

1. 환경

1) JAVA 1.7

 

2. 과정

String changePwFalg = "";

/* 날짜 포맷 셋팅 */
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
Calendar cal = Calendar.getInstance();

/**
 * 2021. 01. 14
 * test.properties 에서 90일 값을 셋팅 후 Environment 객체를 호출해 사용.
 * 자바단에서 이후 날짜를 변경하지 않는다.
 */
final long passwordDateLimit = Integer.parseInt(Environment.getPasswordDateLimit());

/**
 * 2021. 01. 14
 * TA_MANAGER 테이블의 PASSWORD_DATE 컬럼값과 현재 날짜를 비교.
 * 90일이 지나면 비밀번호 변경 Flag값을 던진다.
 */
/* PASSWORD_DATE값 Setting */
String pwDate = ManagerEntity.getField("PASSWORD_DATE");
Date passwordDateFormat = sdf.parse(pwDate);

Calendar passwordDate = Calendar.getInstance();
passwordDate.setTime(passwordDateFormat);

/* 현재 날짜 Setting */
Date date = new Date();
String dateFormat = sdf.format(date);
Date todayDate = changeStringToDate(dateFormat);

Calendar toDay = Calendar.getInstance();
toDay.setTime(todayDate);

long diffSec = (toDay.getTimeInMillis() - passwordDate.getTimeInMillis()) / 1000;
long diffDays = diffSec / (24 * 60 * 60);

System.out.println("==> CHANGE_PASSWORD_DATE, DIFFDAYS : " + diffDays);

 

//changeStringToDate 객체

/**
 * 2021. 01. 13
 * String을 Date로 변환
 */
public Date changeStringToDate(String dateInput) {
	Date resultDate=null;
	String dateFormat = "yyyyMMdd";
	DateFormat df = new SimpleDateFormat(dateFormat);
	try {
		resultDate = df.parse(dateInput);
	} catch (ParseException e) {
		e.printStackTrace();
	}
	return resultDate;
}

 

//특정날짜와 오늘날짜와 비교 후 90일 값과 비교.

/**
 * 2021. 01. 14
 * 위에서 구한 날짜 차이를 90일과 비교한다.
 * 90일이 지났으면 changePwFalg를 Y로 보낸다.
 */
if(diffDays > passwordDateLimit) {
	ManagerEntity.setField("CHANGE_PW_FLAG", changePwFalg);
	changePwFalg = "Y";
	ManagerEntity.setField("CHANGE_PW_FLAG", changePwFalg);
} else {
	changePwFalg = "N";
	ManagerEntity.setField("CHANGE_PW_FLAG", changePwFalg);
}

** 오타 **

changePwFalg => changePwFlag 

 

3. 결과

1) 특정날짜와 오늘날짜를 비교해서 일 수를 구하고,

2) 구한 결과를 다시 한번 90(일, day)이라는 값과 비교한다.

** 만약 30일을 구하고 싶으면 properties에서 30, 60, 90, 120... 등을 고치면 된다.

** 굳이 자바단을 수정할 필요가 없다.

 

3) 그리고 changePwFlag를 JSP쪽으로 보내어 사용하면 된다.

 

일단 기본적으로 1.7과 스프링이 아닌 Servlet의 스트럿츠를 사용하다보니 정말 헛갈리고 복잡하다. -,-....

 

1) properties를 ResourceBundle 이라는 객체를 사용해서 맵핑 시키고

2) 사용하기 위해서 Environment class 에서 getter setter를 하나하나 다 지정해준다.

3) 그럼 이걸 위에서 한 것처럼 객체에 담을 꺼내어 와서 int로 변형시키고...

4) JSP에서는 httpSession을 이용해서 set하고 또 다른 JSP에서 request get 하고...

 

정말 너무 복잡하다...-,-...

 

새삼스럽지만 스프링의 위대함을 다시 한번 알게 됐다..

 

 

 

참고 블로그 : https://myhappyman.tistory.com/128

댓글0