- Calendar : 날짜와 시간 클래스
1. get()으로 날짜+시간 필드 가져오기
: int get(int field). - > getInstance()는 Calendar클래스에 맞는 메서드를 데리고 옴.
Calendar cal = Calendar.getInstance()); //현재시간
2. setInstance() : 내가 설정 가능
Calendar cal = Calendar.getInstance(); //현재 시간에서
cal.set(Calendar.HOUR_OF_DAY, 10) // 10시로
cal.set(Calendar.MINUTE, 20) // 20분으로
cal.set(Calendar.SECOND, 30) // 30초로
* Calendar의 다양한 필드 예제(자바의정석 Ex10_1)
import java.util.Calendar;
public class Ex10_1 {
public static void main(String[] args) {
//기본적으로 현재날짜와 시간으로 설정
Calendar today = Calendar.getInstance();
System.out.println("이 해의 년도: " + today.get(Calendar.YEAR));
System.out.println("월(0~11, 0:1월 : " + today.get(Calendar.MONTH));
System.out.println("이 해의 몇째 주: " + today.get(Calendar.WEEK_OF_YEAR));
System.out.println("이 달의 몇째 주: " + today.get(Calendar.WEEK_OF_MONTH));
System.out.println();
//DATE와 DAY는 같다.
System.out.println("이 달의 몇 일: " + today.get(Calendar.DATE));
System.out.println("이 달의 몇 일: " + today.get(Calendar.DAY_OF_MONTH));
System.out.println("이 해의 몇 일: " + today.get(Calendar.DAY_OF_YEAR));
System.out.println("요일(1~7) 1 : 일요일 : " + today.get(Calendar.DAY_OF_WEEK));
System.out.println("이 달의 몇째 요일: " + today.get(Calendar.DAY_OF_WEEK_IN_MONTH));
System.out.println();
System.out.println("오전_오후(0:오전, 1:오후) : " + today.get(Calendar.AM_PM));
System.out.println("시간(0~11): " + today.get(Calendar.HOUR));
System.out.println("시간(0~23): " + today.get(Calendar.HOUR_OF_DAY));
System.out.println("분(0~59): " + today.get(Calendar.MINUTE));
System.out.println("초(0~59): " + today.get(Calendar.SECOND));
System.out.println("1000분의 1초(0~999): " + today.get(Calendar.MILLISECOND));
//천분의 일초를 시간으로 표현하기 위해 3600000으로 나눔(1시간 = 60*60)
System.out.println("TIMEZONE(-12~+12): " + today.get(Calendar.ZONE_OFFSET)/(60*60*1000));
System.out.println("이 달의 마지막 달 : " + today.getActualMaximum(Calendar.DATE));
}
}
** 달력만들기(자바의 정석 Ex10_6)
import java.util.*;
public class Chpater10 {
public static void main(String[] args) {
//main의 매개변수 년, 월 없으면 "Usage : java CalendarEx10 2021 08" 출력
if( args.length != 2) {
System.out.println("Usage : java CalendarEx10 2021 08");
return;
}
int year = Integer.parseInt(args[0]); //년을 int로
int month = Integer.parseInt(args[1]); //월을 int로
int START_DAY_OF_WEEK = 0; //시작 요일 초기화
int END_DAY = 0; //끝일 초기화
Calendar sDay = Calendar.getInstance(); //시작일
Calendar eDay = Calendar.getInstance(); //끝일
//월은 배열 0부터 시작하므로 0이 1월,, 원하는 달력원하면 배열-1
sDay.set(year, month-1, 1);
eDay.set(year, month, 1);
//담달에서 해당 월 마지막값구하기 위해 담달 첫날에 -1 add()함수 이용
eDay.add(Calendar.DATE, -1);
//첫날 요일 구하기
START_DAY_OF_WEEK = sDay.get(Calendar.DAY_OF_WEEK);
END_DAY = eDay.get(Calendar.DATE);
System.out.println(" "+args[0]+"년 " +args[1] + "월");
System.out.println(" 일 월 화 수 목 금 토");
//해당 월의 1일이 수요일이면 일, 월, 화 빈칸 생성해야하므로 시작일전까지 빈칸 넣기 반복문
for(int i=1; i<START_DAY_OF_WEEK; i++) {
System.out.print(" ");
}
//간격일정위해 10넘으면 빈칸한개 안넘으면 빈칸두개
//요일 7넘으면 다음줄로..
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) System.out.println();
}
}
}
- time : 날짜, 시간, 날짜와시간 ,, 개선된 패키지
: 날짜와 시간을 함께 표현하는 Calendar에서 java.time에서는 시간과 날짜를 분리함 --> JDK1.8에서 그전 단점 보완
-객체생성 방법1. now()
LocalDATE date = LocalDATE.now(); // 현재날짜
LocalTime now = LocalTime.now(); // 현재시간
-객체생성 방법1. of()
LocalDate birthDate = LocalDate.of(1999, 12, 31); //내가설정한 날짜
LocalTime birthTime = LocalTime.of(23, 59,58); //내가 설정한 시간
'JAVA' 카테고리의 다른 글
JAVA_컬렉션 프레임워크(Set, Map) (0) | 2021.08.06 |
---|---|
JAVA_컬렉션 프레임워크(List) (0) | 2021.08.05 |
JAVA_예외처리 (0) | 2021.08.03 |
JAVA_인터페이스 (0) | 2021.08.02 |
JAVA_추상화 (0) | 2021.08.01 |
댓글