자바/자바 기본
java Calendar , date
은은하게미친자
2022. 7. 25. 22:38
728x90
* Calendar , date 의기존의 단점들을 개선한 새로운 클래스 ==> JAVA.TIME패키지
* Calendar
: 추상클래스, 메서드를 통해서 완전히 구현된 클래스의 인스턴스를 얻어 사용.
Calendar를 상속받아 완전히 구현한 클래스로는 GregorainCalender 와 BuddhistCalendar가 있는데 getInstance()는
시스템의 구각와 지역설정을 확인해서 태국인경우 BuddhistCalendar의 인스턴스를 반환하고 그외에 지역에는 BuddhistCalendar 인스턴스를 반환한다.
*요일은1부터시작, 월은 0부터시작 예제참고
*원하는 날짜로 설정은 set함수 사용 예제참고
Calendar cal = Calendar.getInstance(); |
* Date와 Calendar간의 변환
//Calendar 를 Date로 변환 Calendar cal = Calendar.getInstance(); Date d = new Date(cal.getTimeInMillis()); //Date를 Calendar로 변환 Date d1 = new Date(); Calendar cal1 = Calendar.getInstance(); cal1.setTime(d1); |
* roll함수 add함수차이 :
: add함수 다른필드에 영향을 미침, roll함수 다른 필드에 영향을 미치지 않음, 예제참고
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
package Capter10;
import java.util.Calendar;
import java.util.Date;
public class Ex10_1 {
public static void main(String[] args) {
//Calendar 를 Date로 변환
Calendar cal = Calendar.getInstance();
Date d = new Date(cal.getTimeInMillis());
//Date를 Calendar로 변환
Date d1 = new Date();
Calendar cal1 = Calendar.getInstance();
cal1.setTime(d1);
System.out.println("연 : " + cal1.get(Calendar.YEAR));
System.out.println("월(0~11): " + cal1.get(Calendar.MONTH));
System.out.println("일 : " + cal1.get(Calendar.DAY_OF_MONTH));
System.out.println("이해의 몇째주 : " + cal1.get(Calendar.WEEK_OF_YEAR));
System.out.println("이 달의 몇째쭈 : " + cal1.get(Calendar.WEEK_OF_MONTH));
System.out.println("이 달의 마지막날 : " + cal1.getActualMaximum(Calendar.DATE));
System.out.println("오전/오후 : " + cal1.get(Calendar.AM_PM));
System.out.println("시 : " + cal1.get(Calendar.HOUR));
System.out.println("분 : " + cal1.get(Calendar.MINUTE));
System.out.println("초 : " + cal1.get(Calendar.SECOND));
}
}
|
cs |
실행결과 |
연 : 2022 월(0~11): 6 일 : 25 이해의 몇째주 : 31 이 달의 몇째쭈 : 5 이 달의 마지막날 : 31 오전/오후 : 1 시 : 10 분 : 3 초 : 32 |
*날짜간 차이구하기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
package Capter10;
import java.util.Calendar;
public class Ex10_2 {
public static void main(String[] args) {
//요일은 1부터시작
String[] dname = {"", "일", "월", "화", "수", "목", "금","토"};
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
//월은 0부터 시작
cal1.set(2022, 6 ,1); //22년7월1일로설정
cal1.set(2022, 6 ,1,0,0,0); //22년7월1일로설정 시간까지 설정
cal2.set(2022, 6 ,24); //22년7월24일로설정
cal2.set(2022, 6 ,24,1,1,41); //22년7월24일로설정 시간까지설정
System.out.printf("날짜1 : %d/%d/%d %s %n" ,cal1.get(Calendar.YEAR)
,cal1.get(Calendar.MONTH)+1
,cal1.get(Calendar.DAY_OF_MONTH)
,dname[cal1.get(Calendar.DAY_OF_WEEK)]);
System.out.printf("날짜2 : %d/%d/%d %s %n" ,cal2.get(Calendar.YEAR)
,cal2.get(Calendar.MONTH)+1
,cal2.get(Calendar.DAY_OF_MONTH)
,dname[cal2.get(Calendar.DAY_OF_WEEK)]);
//두날짜 차이
//getTimeInMillis : milliseconds.단위
long differ =(cal2.getTimeInMillis()- cal1.getTimeInMillis())/1000;
//초단위로 변환
System.out.println("두날짜차이 :" + differ +"초");
//일 단위로 변환
System.out.println(differ/(24*60*60) + " 일");
cal1.add(Calendar.MONTH, 1);
System.out.printf("날짜1 한달후 : : %d/%d/%d %s %n" ,cal1.get(Calendar.YEAR)
,cal1.get(Calendar.MONTH)+1
,cal1.get(Calendar.DAY_OF_MONTH)
,dname[cal1.get(Calendar.DAY_OF_WEEK)]);
cal2.roll(Calendar.DATE, 8);
System.out.printf("roll 8일 더하기 : : %d/%d/%d %s %n" ,cal2.get(Calendar.YEAR)
,cal2.get(Calendar.MONTH)+1
,cal2.get(Calendar.DAY_OF_MONTH)
,dname[cal2.get(Calendar.DAY_OF_WEEK)]);
}
}
|
cs |
실행결과 |
날짜1 : 2022/7/1 금 날짜2 : 2022/7/24 일 두날짜차이 :1990901초 23 일 날짜1 한달후 : : 2022/8/1 월 roll 8일 더하기 : : 2022/7/1 금 |
728x90