Calendar: 날짜와 시간을 다루는 클래스
- 추상 클래스이기 때문에 직접 new 하여 객체 생성이 불가능
- Calendar.getInstance() 메소드를 이용
Calendar cal = Calendar.getInstance();
오늘날짜에 대한 정보
public class Test {
public void k1() {
// Calendar클래스를 통해 getInstance()메서드를 사용하여 객체 생성
Calendar cal = Calendar.getInstance();
System.out.println(cal);
java.util.GregorianCalendar[time=1678759624329,...
...
YEAR=2023, //년
MONTH=2, // 월(0부터 시작)
WEEK_OF_YEAR=11, // 현재 년도의 몇째 주
WEEK_OF_MONTH=3, // 현재 월의 몇째 주
DAY_OF_MONTH=14, // 현재 월의 날짜
DAY_OF_YEAR=73, // 현재 년도의 날짜
DAY_OF_WEEK=3, // 현재 요일(일요일(1) 부터 시작)
DAY_OF_WEEK_IN_MONTH=2,
AM_PM=0,
HOUR=11, // 현재시간(12시간제)
HOUR_OF_DAY=11, // 현재시간(24시간제)
MINUTE=7, // 현재 분
SECOND=4, // 현재 초
}
}
Calendar클래스가 갖고있는 데이터 가져오기
cal.get(Calendar.원하는 것)
public class Test {
public void k2() {
Calendar cal = Calendar.getInstance();
System.out.println(cal.get(Calendar.YEAR)); // 년
System.out.println(cal.get(Calendar.MONTH)+1); // 월
int date = cal.get(Calendar.DAY_OF_MONTH); // 일
System.out.println(date);
date = cal.get(Calendar.DATE); // 일 (ATE 와 DAY_OF_MONTH는 같음.)
System.out.println(date);
int day = cal.get(Calendar.DAY_OF_WEEK); // 요일
System.out.println(day);
day = cal.get(Calendar.TUESDAY);
System.out.println(day); //값이 다름(!=3)
}
}
===============Console================================
2023
3
14
14
3
11
Calendar 객체의 정보 변경
cal.set(Calendar.변경하고 싶은 것, 변경내용);
public class Test {
public void k3() {
Calendar cal = Calendar.getInstance();
// 월의 값은 api의 값은 우리가 알고 있는 값과 다를 수 있으므로
// 월에 대한 상수 사용하면 좋다.(JANUARY, TUESDAY, ...)
System.out.println(cal.get(Calendar.DAY_OF_WEEK));
System.out.println(cal.get(Calendar.MONTH));
cal.set(Calendar.MONTH, 0);
//cal.set(Calendar.MONTH, Calendar.JANUARY); 위와 같음
System.out.println(cal.get(Calendar.DAY_OF_WEEK));
System.out.println(cal.get(Calendar.MONTH));
}
}
====================Console===============================
3
2
7
0
일정 기간 전후의 날짜 정보 획득하기
cal.add(Calendar.원하는 정보, add값)
public class Test {
public void k4() {
Calendar cal = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
System.out.println(cal.get(Calendar.YEAR));
cal.add(Calendar.YEAR, 3);
System.out.println(cal.get(Calendar.YEAR));
cal.add(Calendar.YEAR, -3);
System.out.println(cal.get(Calendar.YEAR));
cal.add(Calendar.MONTH, 11);
System.out.print(cal.get(Calendar.YEAR));
System.out.print("::");
System.out.println(cal.get(Calendar.MONTH));
cal = cal2; //초기화
// 45일 내로 돈을 갚아야 할 때 기한 날짜
cal.add(Calendar.DAY_OF_MONTH, 45);
System.out.println(cal.get(Calendar.MONTH));
System.out.println(cal.get(Calendar.DATE));
}
)
=================Console===============================
2023
2026
2023
2024::1
3
28
roll(): 해당 필드의 정보만 루프되면서 바뀜.
cal1.roll(Calendar.원하는 정보, 변경할 값)
- 다른 상위 필드의 정보는 바뀌지 않음(add와의 차이점)
public class Test {
public void k5() {
Calendar cal1 = Calendar.getInstance();
cal1.roll(Calendar.MONTH, 11); // MONTH만 바꿈
System.out.println(cal1.get(Calendar.YEAR));
System.out.println(cal1.get(Calendar.MONTH));
System.out.println(cal1.get(Calendar.DAY_OF_MONTH));
}
}
=====================Console==================================
2023
1
14
before(), after(): 날짜가 지났는지 여부를 확인할 때 주로 사용
cal1.before(cal2)
cal1.after(cal2)
public class Test {
public void k6() {
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal1.add(Calendar.DATE, 1);
boolean result = cal1.before(cal2);
System.out.println(result);
result = cal1.after(cal2);
System.out.println(result);
}
}
=====================Console====================
false
true
'자바(java)' 카테고리의 다른 글
List (0) | 2023.03.15 |
---|---|
Date (0) | 2023.03.15 |
Random (0) | 2023.03.14 |
예외처리(Exception) (1) | 2023.03.13 |
내부클래스(Inner Class) (0) | 2023.03.13 |