728x90
#2. Calendar의 get(), set() 메서드에 사용되는 상수
YEAR : 년도
DAY_OF_MONTH : 한달의 날짜
MONTH : 달(0~11) 0-> 1월
DAY_OF_WEEK : 한주의 요일
HOUR : 시간 (0~11) 0-> 1시
AM_PM : 오전/오후
HOUR_OF_DAY : 24시간 기준으로 한 시간
MINUTE : 분
SECOND : 초
MILLISECEND : 밀리초 (1초 =1000밀리초)
#3.Gragorian Calendar 클래스
1970.1.1.0.0.0을 기준으로 365.25일 (4년에 1번씩 윤달)
2) Date 클래스 (비추천, 하지만 아직까지많이 쓴다)
: 단일 클래스로 날짜/시간 관련 클래스
1900.1.1.0.0.0을 기준,
1970.1.1.0.0.0을 기준
package day15;
import java.util.Calendar;
public class ClassEx47 {
static String toCalString(Calendar date) {
return date.get(Calendar.YEAR) + "년" +
(date.get(Calendar.MONTH)+1) + "월"+ (date.get(Calendar.DATE))
+"일"; }
public static void main(String[] args) {
Calendar now = Calendar.getInstance();
System.out.println(now);
//년도와 월 알아내기
int year = now.get(Calendar.YEAR);
int month = now.get(Calendar.MONTH) +1 ; //0~11월 : 0 -> 1월
System.out.println("year : " +year );
System.out.println("month : " +month );
System.out.println();
// 일 = 1, 월 =2
final String[] DAY_OF_WEEK = {"","일","월","화","수","목","금","토","일"};
System.out.println(toCalString(now));
System.out.println(DAY_OF_WEEK[now.get(Calendar.DAY_OF_WEEK)]+"요일");
Calendar date1 = Calendar.getInstance();
date1.set(2022,12,25); //올해 크리스마스로 세팅
System.out.println(toCalString(date1)+""+ DAY_OF_WEEK[date1.get(Calendar.DAY_OF_WEEK)]);
}
}
package day15;
import java.util.Calendar;
public class ClassEx48 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Calendar time1 = Calendar.getInstance();
Calendar time2 = Calendar.getInstance();
// time1 : 10시 20 분 30초
time1.set(Calendar.HOUR_OF_DAY, 10);
time1.set(Calendar.MINUTE, 20);
time1.set(Calendar.SECOND, 30);
//time2 : 20시 30분 10초
time1.set(Calendar.HOUR_OF_DAY, 20);
time1.set(Calendar.MINUTE, 30);
time1.set(Calendar.SECOND, 10);
System.out.println(time1.getTimeInMillis());
System.out.println(time2.getTimeInMillis());
long differ = Math.abs(time1.getTimeInMillis() - time2.getTimeInMillis()/1000);
System.out.println(differ);
final int [] TIME_UNIT= {3600,60,1};
final String[] TIME_UNIT_NAME = {"시간","분","초"};
System.out.print("tim1 1 과 2 차이는 ");
String tmp = "";
for(int i=0;i<TIME_UNIT.length; i++) {
tmp += differ/TIME_UNIT[i] + TIME_UNIT_NAME[i];
}
System.out.println(tmp + "입니다");
}
}
package day15;
import java.util.Calendar;
public class ClassEx49 {
static String toCalString(Calendar date) {
return date.get(Calendar.YEAR) + "년" +
(date.get(Calendar.MONTH)+1) + "월"+ (date.get(Calendar.DATE))
+"일"; }
public static void main(String[] args) {
// TODO Auto-generated method stub
Calendar date = Calendar.getInstance();
date.set(2022, 7,31); //2022 8월 31
System.out.println(toCalString(date));
System.out.println("1일 후");
date.add(Calendar.DATE, 1);
System.out.println(toCalString(date));
System.out.println("6달전");
date.add(Calendar.MONTH,-6);
System.out.println(toCalString(date));
System.out.println(" 31 일 후 roll");
date.roll(Calendar.DATE, 31);
System.out.println(toCalString(date));
date.add(Calendar.DATE,31);
System.out.println(toCalString(date));
}
}
package day15;
import java.text.SimpleDateFormat;
import java.util.Date;
public class ClassEx50 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Date day = new Date(); // 오늘 현재 시각 값을 지정해서 객체 생성
System.out.println(day);
System.out.println(day.getMonth()+1);
// 날짜 포맷(형태)를 원하는 형태로 변경해서 사용을 원할때
SimpleDateFormat abc1 = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat abc2 = new SimpleDateFormat("yy년-MM월-dd일");
System.out.println(abc1.format(day));
System.out.println(abc2.format(day));
}
}
package day15;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class ClassEx51 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 날짜 입력받아 현재 시간과의 차이 출력
String pattern = "yyyy/MM/dd";
DateFormat ab= new SimpleDateFormat(pattern);
Scanner sc = new Scanner(System.in);
Date inputDate = null;
System.out.println("날짜를 " + pattern + "의 형태로 입력하세요");
// inputDate = ab.parse(sc.nextLine());
while(sc.hasNextLine()) {
try {
inputDate = ab.parse(sc.nextLine());
break;
}catch(Exception e) {
System.out.println("날짜를 " + pattern + "형태로 다시 입력");
}
}
//System.out.println(inputDate);
Calendar cal = Calendar.getInstance();
cal.setTime(inputDate); // Date -> Calendar
Calendar now = Calendar.getInstance(); // 현재시각
long hours = Math.abs(cal.getTimeInMillis() - now.getTimeInMillis())/(1000*60*60);
System.out.println(hours);
}
}
728x90
'P-Language > [Java]' 카테고리의 다른 글
[Java] 17 - 입출력 스트림(Input/Out Stream) (0) | 2022.06.11 |
---|---|
[Java] Hashmap Exercises (0) | 2022.06.07 |
[Java] 16 - 컬렉션 (해쉬맵, 어레이리스트) (0) | 2022.06.03 |
[Java] 15 - 패키지와 API (0) | 2022.06.03 |
[Java] 14 - 싱글턴 (0) | 2022.06.03 |