< Calendar > class
- 날짜 처리 기능을 제공하는 클래스
Calendar cal = Calendar.getInstance();
- Calendar 클래스 객체 생성 -> 싱글톤 객체이다
- 컴퓨터 시각을 멤버변수로 복사한다
import java.util.Calendar;
public class Ex01_날짜출력 {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
int yy = cal.get(Calendar.YEAR);
int mm = cal.get(Calendar.MONTH) + 1; // Java에서 월은 0부터 시작
int dd = cal.get(Calendar.DAY_OF_MONTH);
int hh = cal.get(Calendar.HOUR_OF_DAY); // 24시간제
int mi = cal.get(Calendar.MINUTE);
int ss = cal.get(Calendar.SECOND);
hh = cal.get(Calendar.HOUR); // 12시간제
mi = cal.get(Calendar.MINUTE);
ss = cal.get(Calendar.SECOND);
int ampm = cal.get(Calendar.AM_PM); // 오전:0, 오후:1
String[] apname = {"오전","오후"};
// apname[ampm]
}
}
▽ 날짜지정
cal.set(Calendar.YEAR, 2025);
cal.set(Calendar.MONTH, 2); // -> 3월 (Java는 0부터 월 관리)
cal.set(Calendar.DAY_OF_MONTH, 15);
cal.set(Calendar.HOUR_OF_DAY, 13);
cal.set(Calendar.MINUTE, 30);
cal.set(Calendar.SECOND, 33);
cal.set(2024,04,17);
cal.set(2024,04,19,19,11,51); // 24시간제만 가능
▽ 날짜연산
cal.add(Calendar.DAY_OF_MONTH, 100);
cal.add(Calendar.DAY_OF_MONTH, -200);
cal.add(Calendar.HOUR, 7);
cal.add(Calendar.MONTH, 8);
요일 인덱스
SUN | ... | SAT | |
Java | 1 | ... | 7 |
JavaScript | 0 | ... | 6 |
▽ 달력 출력
import java.util.Calendar;
import java.util.Scanner;
public class Ex05_날짜처리응용 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("년도를 입력하세요: ");
int year = scan.nextInt();
System.out.print("월을 입력하세요: ");
int month = scan.nextInt();
scan.close();
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month-1);
int weekCount = cal.getActualMaximum(Calendar.WEEK_OF_MONTH); // 이번달이 몇주인지
int dayCount = cal.getActualMaximum(Calendar.DAY_OF_MONTH); // 이번달이 몇일까지있는지
cal.set(Calendar.DAY_OF_MONTH, 1); // 이 달의 1일로 설정
int first_day = cal.get(Calendar.DAY_OF_WEEK); // 이달의 1일의 요일 인덱스
int[][] data = new int[weekCount][7];
int count = 1;
// "주" 수 만큼 반복
for ( int i=0; i<data.length; i++ ) {
// "요일" 수 만큼 반복
for (int j =0; j<data[i].length; j++) {
if(!(i==0 && j+1<first_day) && count<=dayCount) {
// i=0, j 가 first_Day(시작요일)보다 작지 않을 때
// count가 이번달의 마지막 날짜 이하일 때
data[i][j] = count;
count++;
}
}
}
for (int i=0; i<data.length; i++) {
for(int j=0; j<data[i].length; j++) {
if(data[i][j] == 0){
System.out.print("\t");
} else {
System.out.printf("%2d\t", data[i][j]);
}
}
System.out.println();
}
}
}
▽ 출력결과
cal.getActualMaximum(Calendar.WEEK_OF_MONTH); // 이번달이 몇주인지
cal.getActualMaximum(Calendar.DAY_OF_MONTH); // 이번달이 몇일까지있는지
● 타임스탬프 : 1970년 1월 1일 자정부터 현재까지 흐른 시간을 초단위로 환산한 값
import java.util.Calendar;
public class Ex06_타임스탬프 {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
long ms1 = cal.getTimeInMillis();
System.out.println(ms1);
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
long ms2 = System.currentTimeMillis();
System.out.println(ms2);
long x = ms2-ms1;
System.out.println(x);
long y = x/1000;
System.out.println(y + "초 지났습니다");
}
}
cal.getTimeInMillis(); // long 타입만 가능하다
System.currentTimeMillis(); // 다른 클래스의 import 필요X
==> 자기가 만든 코드가 몇초동안 실행하는지 알 수 있다 !!!
'IT > JAVA' 카테고리의 다른 글
for-each (1) | 2024.09.30 |
---|---|
Gson(Maven) (0) | 2024.09.27 |
Java API - Lang package java.lang (0) | 2024.09.26 |
Helper (0) | 2024.09.26 |
패키지와 라이브러리 (0) | 2024.09.25 |