(Java)자바의 정석 기초편 10장 4번 문제풀기

DevSeoRex·2022년 6월 18일
0

Java

목록 보기
15/15

문제 자신이 태어난 날부터 지금까지 며칠이 지났는지 계산하여 출력하라.

교재에서는, 생일을 2000-01-01로, 오늘 날짜를 2016-01-29로 설정하였기에, 정확히 계산이 되었는지 확인하기 위하여 교재와 같이 날짜를 설정했다.

전체코드

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class Exercise10_04 {

	public static void main(String[] args) {
		SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd");
		Date birth1 = null;
		Date today1 = null;
		Calendar birth = Calendar.getInstance();
		birth.set(2000, 0, 1);
		birth1 = birth.getTime();
		Calendar today = Calendar.getInstance();
		today.set(2016, 0,29);
		today1 = today.getTime();
		
		//밀리세컨드 단위로 차이 결과 도출
		long result = today1.getTime() - birth1.getTime();
		long resultAns = result / (60*60*24*1000);
		
		System.out.println("birth day=" + df1.format(birth1));
		System.out.println("today =" + df1.format(today1));
		System.out.println(resultAns + " days");

	}

}

SimpleDateFormat으로 날짜의 출력 형식을 정해주고 (yyyy-MM-dd), 각각 생일과 오늘 날짜를 Calendar의 instance를 얻어서 설정해주고, Calendar로 설정한 날짜를 date로 변환한다.

※Calendar 타입으로 SimpleDateFormat 클래스의 format() 메서드를 사용하면 오류가 난다.

Date의 getTime() 메서드를 이용해서 밀리세컨드 단위로 각 날짜의 차이를 반환 받고,

Day 날짜를 기준으로 차이가 얼마나 나는지 보고 싶다면, getTime() 메서드로 반환 받은 값들의 차를 (60x60x24x1000)으로 나누어주면 값을 반환 받을 수 있다.

출력

출처 : 자바의 정석 기초편(남궁성 저, 도우출판)

0개의 댓글