-
자바 예제로 살펴보는 Calendar 여러가지 기능들(1)Java/자바의정석 2023. 2. 23. 23:19반응형
앞선 게시글에서 Calendar에 대한 여러가지 기능들을 자세히 살펴보았다.
이제는 활요을 해서 사용해보자.
아래의 코드는 자바의정석 연습예제로 있는 문제이다.
package Chap10; import sun.util.resources.CalendarData; import java.util.*; class Ex10_2 { public static void main(String[] args) { // 요일은 1부터 시작하기 때문에, DAY_OF_WEEK[0]은 비워두었다. final String[] DAY_OF_WEEK = {"","일","월","화","수","목","금","토"}; Calendar date1 = Calendar.getInstance(); Calendar date2 = Calendar.getInstance(); date1.set(2023, 2, 24); // 2019년 4월 29일로 날짜를 설정한다. System.out.println(Calendar.DAY_OF_WEEK); //7 System.out.println((date1.get(Calendar.DAY_OF_WEEK))); System.out.println("date1은 "+ toString(date1) + DAY_OF_WEEK[date1.get(Calendar.DAY_OF_WEEK)]+"요일이고,"); System.out.println("오늘(date2)은 " + toString(date2) + DAY_OF_WEEK[date2.get(Calendar.DAY_OF_WEEK)]+"요일입니다."); long difference = (date2.getTimeInMillis() - date1.getTimeInMillis())/1000; System.out.println("그 날(date1)부터 지금(date2)까지 " + difference +"초가 지났습니다."); System.out.println("일(day)로 계산하면 "+ difference/(24*60*60) +"일입니다."); // 1일 = 24시간 * 60분 * 60초 } public static String toString(Calendar date) { return date.get(Calendar.YEAR)+"년 "+ (date.get(Calendar.MONTH)+1) +"월 " + date.get(Calendar.DATE) + "일 "; } }
===============실행결과===============
7
6
date1은 2023년 3월 24일 금요일이고,
오늘(date2)은 2023년 2월 24일 금요일입니다.
그 날(date1)부터 지금(date2)까지 -2419199초가 지났습니다.
일(day)로 계산하면 -27일입니다.
// 요일은 1부터 시작하기 때문에, DAY_OF_WEEK[0]은 비워두었다. final String[] DAY_OF_WEEK = {"","일","월","화","수","목","금","토"};
우선 위와같이 배열을 하나 생성해둔다. 요일은 1부터 시작하기 때문에 0번쨰를 비워두었지만
month의 경우는 0부터 시작하기 때문에 0번째를 비워두면 안된다.
Calendar date1 = Calendar.getInstance(); Calendar date2 = Calendar.getInstance();
그리곤 Calendar를 사용하기위해 getInstance()를 사용한다.
date1.set(2023, 2, 24);
작성일 기준으로 하여 현재 날짜를 세팅하였다. (year, month, day)
date1.set(Calendar.YEAR, 2017); date1.set(Calendar.MONTH, 7); date1.set(Calendar.DATE, 15);
이와같이 개별로 따로 설정도 가능하다는 점도 체크하고 넘어가자.
System.out.println(Calendar.DAY_OF_WEEK); //7 System.out.println((date1.get(Calendar.DAY_OF_WEEK))); System.out.println("date1은 "+ toString(date1) + DAY_OF_WEEK[date1.get(Calendar.DAY_OF_WEEK)]+"요일이고,");
첫번째 DAY_OF_WEEK를 찍어보면 총 7일이기때문에 7이 출력되어 나온다.
다음은 getInstance()를 사용하여 생성한 객체를 통해 DAY_OF_WEEK를 사용한다면 오늘 요일을 찾아올 수 있다.
작성일 기준 금요일이기때문에 6을 출력하게된다.
toString(date1)의 경우 2023년 3월 24일 을 반환하고
+DAY_OF_WEEK[6]이 되어 기존에 FINAL로 선언해두었던 배열에서 6번째 값을 출력해온다.
long difference = (date2.getTimeInMillis() - date1.getTimeInMillis())/1000; System.out.println("그 날(date1)부터 지금(date2)까지 " + difference +"초가 지났습니다."); System.out.println("일(day)로 계산하면 "+ difference/(24*60*60) +"일입니다.");
다음으로는 날짜간의 차이를 계산하는 경우이다.
날짜1 - 날짜2 : 날짜1,2 모두 초단위로 바꾸고난 뒤 뺄셈을 진행해야한다.
반응형'Java > 자바의정석' 카테고리의 다른 글
Stack, Queue 개념 (0) 2023.02.26 자바 예제로 살펴보는 Calendar 여러가지 기능들(2) (0) 2023.02.23 자바 Calendar의 여러가지 기능들 (0) 2023.02.23 Math메서드, Round(), Rint() 비교하기 (0) 2023.02.22 Wrapper클래스란? (0) 2023.02.22