< java.util .Calendar 클래스 >
- 자바에서 날짜, 시간 데이터를 쉽게 처리하도록 제공하는 추상 클래스로 다양한 필드와 메소드가 포함 되어있다.
- java.util.Calendar 를 import 하여 사용
- getInstance() 로 객체 생성(추상클래스 이므로 new로 인스턴스를 생성할 수 없다)
import java.util.Calendar;
public class CalendarTest {
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
}
}
- 주요 필드
1. YEAR : 년도
2. MONTH : 월 (1월을 상수 0으로 대응, 실제 월을 구할 땐 +1)
3. DATE, DAY_OF_MONTH : 월의 날짜
4. DAY_OF_WEEK : 일주일에 해당되는 요일(일요일 1부터 시작)
5. HOUR : 12시간 단위 시간
6. HOUR_OF_DAY : 24시간 단위 시간
7. MINUTE : 분
8. SECOND : 초
- 주요 메소드
1. add() : 전달된 필드에서 일정 시간만큼을 더하거나 뺌
2. get() : 전달된 필드에 저장된 값을 반환
3. set() : 전달된 필드를 특정 값으로 설정
import java.util.Calendar;
import java.util.Scanner;
public class CalendarTest {// 1011 Calendar
public static void main(String[] args) {
/*
* Calendar c = Calendar.getInstance();//사용 방법 c.get(Calendar.YEAR);
* //static변수year - 반환값 int System.out.println(c.get(Calendar.YEAR));
* System.out.println(c.get(Calendar.MONTH)+1); //0-11 숫자값 0이 1월달
* System.out.println(c.get(Calendar.DATE));
* System.out.println(c.get(Calendar.HOUR));
* System.out.println(c.get(Calendar.MINUTE));
* System.out.println(c.get(Calendar.SECOND));
* System.out.println(c.get(Calendar.DAY_OF_WEEK)); //1.일요일
*/
// 달력출력
Scanner sc = new Scanner(System.in);
System.out.println("년 입력 : ");
int year = sc.nextInt(); // 2022
System.out.println("월 입력 : ");
int month = sc.nextInt(); // 10
int START_DAY_OF_WEEK = 0; // 시작하는 요일의 날짜를 알기 위해서
int END_DAY = 0;
Calendar sDay = Calendar.getInstance();
Calendar eDay = Calendar.getInstance();
sDay.set(year, month - 1, 1); // 시작하는 달의 1일 날짜로 초기화 202291
eDay.set(year, month, 1); // 다음달 1일로 날짜 초기화2022101
eDay.add(Calendar.DATE, -1); // 전 달의 마지막을 구함9월마지막날31일
START_DAY_OF_WEEK = sDay.get(Calendar.DAY_OF_WEEK); // 7:토요일 //1일이 무슨요일인지
END_DAY = eDay.get(Calendar.DATE);// 31
System.out.println(" " + year + "년 " + month + "월");
System.out.println(" SU MO TU WE TH FR SA ");
for (int i = 1; i < START_DAY_OF_WEEK; i++) { //1일 전까지 공백으로 채우기
System.out.print(" ");
}
for (int i = 1, n = START_DAY_OF_WEEK; i <= END_DAY; i++, n++) {
System.out.print((i < 10 ? " " + i : " " + i)); //한자리수 두자리수 칸 맞추기
if(n % 7 == 0) { //7의 배수마다 줄바꿈
System.out.println();
}
}
}}
'java' 카테고리의 다른 글
Collection(List) (0) | 2022.10.11 |
---|---|
래퍼 클래스(Wrapper class) (0) | 2022.10.11 |
String class (0) | 2022.10.07 |
UML(Unified Modeling Language) (0) | 2022.10.06 |
다형성(인터페이스) (0) | 2022.10.06 |