최신글
hyeonga_code
Java_62_Calendar 클래스, 날짜 클래스 본문
반응형
-- Calendar
- Date 보다 자주 사용합니다.
- 1.3 버전에서 출시
- 연산을 위해 출시
- calendar의 생성자
- calendar.getInstance()
Calendar now = Calendar.getInstance()
value = now.get(상수값)
- 날짜
'DateTimeEx.java'
=====
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
package adv.baseclass;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.util.Calendar;
import java.util.Date;
// Date, Time
public class DateTimeEx {
public static void main(String[] args) {
Date date = new Date(); // 현재 날짜를 알고싶은 경우
System.out.println("date : " + date);
/* date : Fri Jun 16 16:07:35 KST 2023 */
// 날짜 형식 지정
SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
System.out.println("ft : " + ft.format(date));
/* ft : 2023-06-16 04:10:20 */
// 날짜 연산
Calendar calendar = Calendar.getInstance();
calendar.setTime(date); // 계산할 날짜의 기준을 지정합니다.
calendar.add(Calendar.DATE, -2); // 날짜를 기준으로 2일 전을 알고싶습니다.
System.out.println("Calendar -2 : " + ft.format(calendar.getTime()));
/* Calendar -2 : 2023-06-14 04:15:11 */
// LocalDateTime : Java 8부터 사용 가능합니다. (T : 시간과 날짜를 구분)
LocalDateTime today = LocalDateTime.now(); // UTF 기준 현재 시간을 지정합니다.
System.out.println(today);
/* 2023-06-16T16:16:39.667836300 */
// local 날짜 형식 지정
DateTimeFormatter dtft = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss");
System.out.println("DateTimeFormatter : " + dtft.format(today));
/* DateTimeFormatter : 2023-06-16 04:21:12 */
// local 날짜 연산
LocalDateTime someday = today.plusDays(-2);
System.out.println("today.plusDays(-2) : " + dtft.format(someday));
/* today.plusDays(-2) : 2023-06-14 04:21:45 */
}
}
|
cs |
=====
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
import java.util.*;
public class ex0325 {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
Date date = new Date(1999, 1, 1); //Date에 줄 생김
// The constructor Date(int, int, int) is deprecated.
System.out.println("cal : " + cal);
/*
* cal :
* java.util.GregorianCalendar[time=1680327865722,
* 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=2023,
* MONTH=3, // 달은 원래 달 보다 1 적은 달로 나온다.
* WEEK_OF_YEAR=13,
* WEEK_OF_MONTH=1,
* DAY_OF_MONTH=1,
* DAY_OF_YEAR=91,
* DAY_OF_WEEK=7,
* DAY_OF_WEEK_IN_MONTH=1,
* AM_PM=1,
* HOUR=2,
* HOUR_OF_DAY=14,
* MINUTE=44,
* SECOND=25,
* MILLISECOND=722,
* ZONE_OFFSET=32400000,
* DST_OFFSET=0
* ]
*/
System.out.println("Year : " + cal.get(Calendar.YEAR));
System.out.println("Month : " + (cal.get(Calendar.MONTH) + 1));
System.out.println("Day : " + cal.get(Calendar.DAY_OF_MONTH));
System.out.println("Hour : " + cal.get(Calendar.HOUR_OF_DAY));
// 하루가 24시간일 경우
System.out.println("Minute : " + cal.get(Calendar.MINUTE));
System.out.println("Second : " + cal.get(Calendar.SECOND));
cal.set(Calendar.YEAR, 2020);
System.out.println("Year : " + cal.get(Calendar.YEAR));
cal.set(Calendar.MONTH, 5);
System.out.println("Month : " + (cal.get(Calendar.MONTH) + 1));
cal.set(2023, 7, 16);
System.out.printf("%d year. %d month. %d day", cal.get(Calendar.YEAR), cal.get(Calendar.MONTH) + 1, cal.get(Calendar.DAY_OF_MONTH));
System.out.println();
int week = cal.get(Calendar.DAY_OF_WEEK);
switch (week) {
case 1: System.out.println("Sun"); break;
case 2: System.out.println("Mon"); break;
case 3: System.out.println("Tue"); break;
case 4: System.out.println("Wend"); break;
case 5: System.out.println("Thu"); break;
case 6: System.out.println("Fri"); break;
case 7: System.out.println("Sat"); break;
}
}
}
|
cs |
- 년,월을 입력받고, 달력을 출력
=====
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
import java.util.*;
public class ex0325 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Calendar cal = Calendar.getInstance();
System.out.print("Input Year: ");
int year = in.nextInt();
System.out.print("Input Month: ");
int month = in.nextInt();
cal.set(year, month-1, 1);
int week = cal.get(Calendar.DAY_OF_WEEK);
// 1 일이 몇 일 인지 확인하기
int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
// 이 달의 마지막 날 표시
System.out.println("Sun\tMon\tTue\tWend\tthu\tFri\tSat");
for (int i=1; i<week; ++i) {
// 시작 일까지 공백으로 처리
System.out.print("\t");
}
for (int i=1; i<lastDay; i++) {
System.out.printf("%d\t",i);
week++;
if(week > 7) {
// 8은 요일이 없으므로
week=1;
// 초기화
System.out.println();
// 줄 바꿈
}
}
}
}
/*
Input Year: 2023
Input Month: 04
Sun Mon Tue Wend thu Fri Sat
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
*/
|
cs |
반응형
'Java' 카테고리의 다른 글
Java_64_Stream_Byte 입출력 (0) | 2023.10.26 |
---|---|
Java_63_Scanner (0) | 2023.10.25 |
Java_61_Math 클래스, Math.random(), 업다운 게임 (0) | 2023.10.25 |
Java_60_API_스트링 버퍼, 스트링 빌더_StringBuffer, String Builder (0) | 2023.10.24 |
Java_59_API_스레드_생명 주기, 멀티 스레드, 메소드, 스레드 종류, 스케줄링 방식, 스레드 스케줄러, 동기화 (0) | 2023.10.24 |