평범한 연구소

[JAVA] 생년월일로 나이와 띠 구하기 본문

JAVA/알고리즘 공부

[JAVA] 생년월일로 나이와 띠 구하기

soyeonisgood 2022. 9. 28. 19:47

'1998-08-08' 형식의 생년월일을 이용하여 현재 나이와 띠를 계산하는 로직을 짜보자.

 

현재 나이 구하기

  • 우선 불필요한 문자 '-' 를 제거하고 년도, 월, 일 변수를 초기화한다.
  • 올해 생일이 지났는지 확인해야한다.
  • 현재 날짜(시스템날짜)의 월일과 내 생일의 월일을 비교하자.
  • Calendar 객체를 이용하여 시스템 날짜 가져오기
String birth = "1998-08-08";

birth = birth.replace("-","");
int by = Integer.parseInt(birth.substring(0,4));
int bm = Integer.parseInt(birth.substring(4,6));
int bd = Integer.parseInt(birth.substring(6));
	
Calendar current = Calendar.getInstance();
    
int cy  = current.get(Calendar.YEAR);
int cm = current.get(Calendar.MONTH) + 1;
int cd   = current.get(Calendar.DAY_OF_MONTH);
    
int age = cy - by;

if ((cm<bm) || ((bm-cm) == 0 && cd < bd) ) {
	age--;
}

 

띠 구하기

  • 우선, 문자열 배열에 12간지를 순서대로 초기화해준다. 이 때 [0]에 어떤 띠가 올지 구해야한다.
  • 년도를 12로 나눈 나머지가 0인 띠가 [0]에 오면 된다. 
  • 예를 들어 1998년생은 호랑이띠, 1998%12=166.5 이다. 1992%12=0 이므로 1992년생의 띠인 원숭이띠부터 순서대로 넣으면 된다.
String[] tti = new String[]{"원숭이띠","닭띠","개띠","돼지띠","쥐띠","소띠","범띠","도끼띠","용띠","말띠","양띠"};
String mytti;

mytti = tti[by%12];

out.print(<p><%=mytti></p>);