Calendar
package kr.s21.object.util;
import java.util.Calendar;
public class CalendarMain01 {
public static void main(String[] args) {
Calendar today = Calendar.getInstance();
System.out.println(today);
//연도
int year = today.get(Calendar.YEAR);//(스태틱한 상수)
//월
int month = today.get(Calendar.MONTH)+1;//월을 반환할 때 1~12가 아닌 0~11을 반환하기 때문에 마지막에 +1을 해줘야지 올바른 월이 나온다.
//괄호 안에 +1을 하면 다른 값이 나옴
//일
int date = today.get(Calendar.DATE);
System.out.printf("%d년%d월%d일 ", year,month,date);
int day = today.get(Calendar.DAY_OF_WEEK);//요일 1~7사이 반환
String[] days = {"알","월","화","수","목","금","토"};// 0~6의 인덱스
System.out.print(days[day-1]+"요일"); // 인덱스가 0~6인데 DAY_OF_WEEK 함수는 1~7 함수를 반환하기 때문에 -1을 해줘야됨.
int amPm = today.get(Calendar.AM_PM); //오전이면 0, 오후면 1
String str = amPm == Calendar.AM ? "오전":"오후";
int hour = today.get(Calendar.HOUR); //시 HOUR_OF_DAY(24시 표시)
int min = today.get(Calendar.MINUTE); //분
int sec = today.get(Calendar.SECOND); //초
System.out.printf(" %s %d시%d분%d초", str,hour,min,sec);
}
}
java.util.GregorianCalendar[time=1710855385649,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Seoul",offset=32400000,dstSavings=0,useDaylight=false,transitions=30,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2024,MONTH=2,WEEK_OF_YEAR=12,WEEK_OF_MONTH=4,DAY_OF_MONTH=19,DAY_OF_YEAR=79,DAY_OF_WEEK=3,DAY_OF_WEEK_IN_MONTH=3,AM_PM=1,HOUR=10,HOUR_OF_DAY=22,MINUTE=36,SECOND=25,MILLISECOND=649,ZONE_OFFSET=32400000,DST_OFFSET=0]
2024년3월19일 화요일 오후 10시36분25초
package kr.s21.object.util;
import java.util.Calendar;
import java.util.Scanner;
public class CalendarMain02 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
//현재 날짜와 시간을 구함
Calendar cal = Calendar.getInstance();
System.out.println("희망 연도와 월을 입력하세요(ex 연도:2024, 월:3");
System.out.print("연도:");
int year = input.nextInt();
System.out.println("월:");
int month = input.nextInt();
System.out.println(" ["+year+ "년" + month + "월]");
System.out.println("--------------------------");
System.out.println(" 일 월 화 수 목 금 토");
//희망 연도,월,일 셋팅
//월의 범위는 0~11 이기 때문에 입력월 -1
//일은 달력이 1일부터 시작이기 때문에 1일로 셋팅
cal.set(year, month-1, 1); //ex) 3월은 인덱스값이 2라서 3을 넣으면 4월이 나오게됨으로 1을 빼줘야됨.
//1일의 요일 구하기, 1 일요일, 2월요일 ...7 토요일
int week = cal.get(Calendar.DAY_OF_WEEK);
//마지막 날을 구해줌.
int lastOfDate = cal.getActualMaximum(Calendar.DATE);
//1일 전 공백 만들기(지난 2월의 일 을 표시)
for (int i =1; i<week; i++) {
System.out.printf("%3s"," ");
}
//1일~ 마지막날까지 반복
for (int i =1; i<=lastOfDate; i++) {
System.out.printf("%3d",i);
//토요일이 되면 줄바꿈 처리
if(week%7 ==0) System.out.println(); {
week++;
}
}System.out.println("\\n---------------------");
input.close();
}
}
희망 연도와 월을 입력하세요(ex 연도:2024, 월:3
연도:2024 3
월:
[2024년3월]
--------------------------
일 월 화 수 목 금 토
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
---------------------
Date
package kr.s21.object.util;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateMain {
public static void main(String[] args) {
Date now = new Date();
System.out.println(now);
System.out.println(now.toString());
System.out.println("-----------------");
//deprecated 되어 사용하지 않음.
System.out.println(now.toLocaleString());
System.out.println("-----------------");
DateFormat df = DateFormat.getInstance();
String today =df.format(now);
System.out.println(today);
System.out.println("-----------------");
df = DateFormat.getDateTimeInstance();
today = df.format(now);
System.out.println(today);
System.out.println("-----------------");
df=DateFormat.getDateInstance();
today = df.format(now);
System.out.println(today);
System.out.println("----------------------");
df= DateFormat.getTimeInstance();
today = df.format(now);
System.out.println(today);
System.out.println("----------------------");
SimpleDateFormat sf = new SimpleDateFormat("yyyy년MM월dd일(E) a hh:mm:ss");//대문자 MM은 월 , 소문자 mm은 분 등 대소문자 구분을 확실히 해야됨.
today = sf.format(now);
System.out.println(today);
}
}
Tue Mar 19 22:36:46 KST 2024
Tue Mar 19 22:36:46 KST 2024
-----------------
2024. 3. 19. 오후 10:36:46
-----------------
24. 3. 19. 오후 10:36
-----------------
2024. 3. 19. 오후 10:36:46
-----------------
2024. 3. 19.
----------------------
오후 10:36:46
----------------------
2024년03월19일(화) 오후 10:36:46