sitelink1 https://blog.naver.com/asap0628/220720089602 
sitelink2  
sitelink3  
sitelink4  
sitelink5  
sitelink6  
Calendar.set() - 날짜 설정하기

 

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
public static void main(String[] args) {
 
    Calendar cal = Calendar.getInstance();    // 현재 시간을 받음.
    
    cal.set(Calendar.YEAR , 1994);
    cal.set(Calendar.MONTH , Calendar.JUNE);
    cal.set(Calendar.DAY_OF_MONTH , 28);
    
    cal.set(Calendar.HOUR_OF_DAY , 14);
    cal.set(Calendar.MINUTE , 25);
    cal.set(Calendar.SECOND , 19);
         
    System.out.println("Year : " + cal.get(Calendar.YEAR));
    System.out.println("Month : " + (cal.get(Calendar.MONTH)+1) ); //괄호 안쪽에 연산을 해줌
    System.out.println("Day of Month : " + cal.get(Calendar.DAY_OF_MONTH));        
    System.out.println("Sun(1) ~ Sat(7) : " + cal.get(Calendar.DAY_OF_WEEK));            
    System.out.println("Hour(0 ~ 23): " + cal.get(Calendar.HOUR_OF_DAY));
    System.out.println("Minute(0 ~ 59): " + cal.get(Calendar.MINUTE));
    System.out.println("Second(0 ~ 59): " + cal.get(Calendar.SECOND));
    
    System.out.println( cal.get(Calendar.YEAR) + "년 " + (cal.get(Calendar.MONTH)+1)
                       + "월 " + cal.get(Calendar.DAY_OF_MONTH) + "일");
    
    System.out.println( cal.get(Calendar.HOUR_OF_DAY) + "시 " + cal.get(Calendar.MINUTE)
                       + "분 " + cal.get(Calendar.SECOND) + "초");
             
}
 
------------------------------------------------------------
result
 
Year : 1994
Month : 6
Day of Month : 28
Sun(1) ~ Sat(7) : 3
Hour(0 ~ 23): 14
Minute(0 ~ 59): 25
Second(0 ~ 59): 19
1994년 6월 28일
14시 25분 19초
cs

 

 

Calendar.set( 설정할 곳 , 설정할 값)

 

 저번에는 Calendar 클래스 선언 하는 방법을 포스팅했죠?ㅎㅎ 이번엔 Calendar에 현재 시간이 아닌 내가 원하는 시간을 설정하는 함수를 소개할까해요. Calendar.set()이라는 함수로 내가 원하는 값으로 날짜와 시간을 설정 할수 있어요. 두가지를 값을 안에 넣어줘야하는데 첫번째 값은 넣고 싶은 곳을 Calendar 필드로(ex Calendar.YEAR ) 두번째는 넣고 싶은 값을( ex 2016)을 넣어주면 돼요. 어렵지 않으니 바로 이해 가실 꺼에요ㅎㅎ

 

 Calendar.MONTH가 0부터 시작해서 불편하다면 괄호안에서 연산 해주시면 돼요. 괄호 밖에서 연산 하면 다른 값이 나와서 원하는 값이 안나와서 괄호를 꼭 기억해주세요.

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public static void main(String[] args) {
 
    Calendar cal = Calendar.getInstance();    // 현재 시간을 받음.
    
    cal.set(1994 , Calendar.JUNE , 28);
    
    cal.set(Calendar.HOUR_OF_DAY , 14);
    cal.set(Calendar.MINUTE , 25);
    cal.set(Calendar.SECOND , 19);
    
    System.out.println( cal.get(Calendar.YEAR) + "년 " + (cal.get(Calendar.MONTH)+1)
                       + "월 " + cal.get(Calendar.DAY_OF_MONTH) + "일");
    
    System.out.println( cal.get(Calendar.HOUR_OF_DAY) + "시 " + cal.get(Calendar.MINUTE)
                       + "분 " + cal.get(Calendar.SECOND) + "초");
             
}
------------------------------------------------------------
result
 
1994년 6월 28일
14시 25분 19초
cs

 

 

Calendar.set( YEAR 값 , MONTH 값 , DAY 값)

Calendar.set( YEAR 값 , MONTH 값 , DAY 값 , HOUR_OF_DAT 값 , MINUTE 값 , SECOND 값)

 

 값들을 하나하나 다 넣기 귀찮다면!! 이렇게 한번에 넣어줄 수도 있어요ㅎㅎ 더 귀찮으면 시간까지 한꺼번에 넣으셔도 돼요 ㅎㅎ

 

 

Calendar.add() - 날짜 더하기

 

 

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
public static void main(String[] args) {
 
    Calendar cal = Calendar.getInstance();    
    cal.set(1994 , Calendar.JUNE , 28 , 14 , 25 , 19);  // 1994년 6월 28일 14시 25분 19초
    
    System.out.println("Before add");
    
    System.out.println( cal.get(Calendar.YEAR) + "년 " + (cal.get(Calendar.MONTH)+1)
                       + "월 " + cal.get(Calendar.DAY_OF_MONTH) + "일");
    System.out.println( cal.get(Calendar.HOUR_OF_DAY) + "시 " + cal.get(Calendar.MINUTE)
                       + "분 " + cal.get(Calendar.SECOND) + "초");
    
    
    cal.add(Calendar.YEAR , 22);        // 2016년 6월 28일
    cal.add(Calendar.MONTH , -3);       // 2016년 3월 28일
    cal.add(Calendar.DAY_OF_MONTH , 5); // 2016년 4월 2일
    
    cal.add(Calendar.MINUTE , 40);      // 2016년 4월 2일 15시 5분 19초
    
    System.out.println("After add");
    
    System.out.println( cal.get(Calendar.YEAR) + "년 " + (cal.get(Calendar.MONTH)+1)
                       + "월 " + cal.get(Calendar.DAY_OF_MONTH) + "일");
    System.out.println( cal.get(Calendar.HOUR_OF_DAY) + "시 " + cal.get(Calendar.MINUTE)
                       + "분 " + cal.get(Calendar.SECOND) + "초");
             
}
------------------------------------------------------------
result
 
Before add
1994년 6월 28일
14시 25분 19초
After add
2016년 4월 2일
15시 5분 19초
 
 
cs

 

 Calendar.add( 더할 곳 , 더할 값)

 

 이번엔 set과 거의 똑같은 Calendar.add()함수를 볼께요. 이 함수는 말 그대로 날짜를 더해주는 함수에요. 소스 주석에 순서대로 변하는 값들을 같이 써놨으니 비교 하면서 보면 편하실꺼에요 ㅎㅎ

 

 주의 하면서 봐주실 곳은 

     1 . cal.add(Calendar.MONTH , -3); 이렇게 쓰면 빼기도 된다는거ㅎㅎ

 

2. cal.add(Calendar.DAY_OF_MONTH , 5); 2016년 3월 28일에 5일을 더하면 2016년 4월 2일로 MONTH값도 같이 바뀌는

  부분을 잘 봐주세요. 밑에 있는 roll 함수와 차이점 이니까요 ㅎㅎ

 

 

Calendar.roll() - 그 부분만 날짜 더하기

 

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
public static void main(String[] args) {
 
    Calendar cal = Calendar.getInstance();    
    cal.set(1994 , Calendar.JUNE , 28 , 14 , 25 , 19);  // myCal 설정 시간
    
    System.out.println("Before add");
    
    System.out.println( cal.get(Calendar.YEAR) + "년 " + (cal.get(Calendar.MONTH)+1)
                       + "월 " + cal.get(Calendar.DAY_OF_MONTH) + "일");
    System.out.println( cal.get(Calendar.HOUR_OF_DAY) + "시 " + cal.get(Calendar.MINUTE)
                       + "분 " + cal.get(Calendar.SECOND) + "초");
    
    
    cal.add(Calendar.YEAR , 22);        // 2016년 6월 28일
    cal.add(Calendar.MONTH , -3);       // 2016년 3월 28일
    cal.roll(Calendar.DAY_OF_MONTH , 5); // 2016년 3월 2일
    
    cal.roll(Calendar.MINUTE , 40);      // 2016년 3월 2일 14시 5분 19초
    
    System.out.println("After add");
    
    System.out.println( cal.get(Calendar.YEAR) + "년 " + (cal.get(Calendar.MONTH)+1)
                       + "월 " + cal.get(Calendar.DAY_OF_MONTH) + "일");
    System.out.println( cal.get(Calendar.HOUR_OF_DAY) + "시 " + cal.get(Calendar.MINUTE)
                       + "분 " + cal.get(Calendar.SECOND) + "초");
             
}
------------------------------------------------------------
result
 
Before add
1994년 6월 28일
14시 25분 19초
After add
2016년 3월 2일
14시 5분 19초
cs

 

 

 Calendar.roll( 더할 곳 , 더할 값)

 

Calendar.add() 함수와의 차이점이 보이시나요??? 두군데가 있죠??ㅎㅎ

 

 1. cal.add(Calendar.DAY_OF_MONTH , 5); // 2016년 4월 2일 

-------> cal.roll(Calendar.DAY_OF_MONTH , 5); // 2016년 3월 2일

 

2. cal.add(Calendar.MINUTE , 40);      // 15시 5분 19초

-------> cal.roll(Calendar.MINUTE , 40);      // 14시 5분 19초

 

 

 

 두가지 부분을 보면 차이점이 보이시죠?? roll() 함수가 add() 함수와 다른점은 올림? (분이 올리가면 시간이 바뀌는 것) 이 안된다는거에요. 3월 28일에 5일을 더하면 add() 함수는 4월 2일 이지만 roll() 함수는 3월 2일 이라는거ㅎㅎ 아무래도 실제로 쓰기에는 실제 시간과 같은 add() 함수가 편하니 차이점만 알아두시면 좋을꺼 같아요,

번호 제목 글쓴이 날짜 조회 수
22 문자의 ASCII 값 테이블 - String.charAt() file 황제낙엽 2023.03.28 0
21 숫자형 클래스 BigInterger (int, long 범위 초과) 황제낙엽 2022.01.16 368
20 LocalDate.now() 오늘 날짜 황제낙엽 2022.01.16 7
19 지정한 일자보다 하루 뒤로 설정하기 황제낙엽 2021.01.14 15
» Calendar.set() - 날짜 설정하기, Calendar.add() - 날짜 더하기, Calendar.roll() - 그 부분만 날짜 더하기 황제낙엽 2019.08.02 89
17 현재날짜, 현재시간을 원하는 형태로 출력하는(Format) 다양한 방법 file 황제낙엽 2019.07.29 66
16 자바 소수점 n번째 자리까지 반올림하기 황제낙엽 2019.07.29 163
15 한글 초성 중성 종성 분리 유틸리티(자작) file 황제낙엽 2019.05.07 244
14 한글 초성 중성 종성 분리 (자모분리) 황제낙엽 2019.05.07 100
13 한글 인코딩의 이해 1편: 한글 인코딩의 역사와 유니코드 황제낙엽 2019.05.07 198
12 한글 인코딩의 이해 2편: 유니코드와 Java를 이용한 한글 처리 file 황제낙엽 2019.05.07 231
11 현재 월,일,시간,분,초 등등 가져오기 황제낙엽 2017.11.02 858
10 Calendar, Date, Format, java.time 패키지 황제낙엽 2017.10.31 108
9 날짜, 시간 문자열 값으로 Date 오브젝트로 만들기 >> SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.US) 황제낙엽 2017.10.31 1516
8 SimpleDateFormat Symbol file 황제낙엽 2016.12.20 74
7 숫자의 형식화 #1(Part-1)-java.text.NumberFormat 황제낙엽 2008.07.08 19
6 숫자 에 대응 되는 문자의 형식화 #2 황제낙엽 2008.07.08 33
5 숫자 에 대응 되는 패턴의 형식화 #1 황제낙엽 2008.07.08 51
4 숫자를 통화 표기 형태로 변환하기 황제낙엽 2008.07.08 27
3 NumberFormat, DecimalFormat 사용예 황제낙엽 2008.07.08 94