본문 바로가기
스프링/mvc패턴

mvc패턴) 일정관리

by CodeMango 2023. 2. 16.

MVC패턴 교육할 때 일정관리 구현하는 방법을 배웠습니다!

일정관리할 때 익혔던 함수를 복습해보겠습니다.

 

 

calendar함수 간단 복습

  1. 현재 시간 출력하기
import java.util.Calendar;

public class CurrentTimeExample {
    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();
        int hour = cal.get(Calendar.HOUR_OF_DAY);
        int minute = cal.get(Calendar.MINUTE);
        int second = cal.get(Calendar.SECOND);
        System.out.println("현재 시간은 " + hour + "시 " + minute + "분 " + second + "초 입니다.");
    }
}

콘솔값 : 현재 시간은 14시 23분 56초 입니다.

2. 두 날짜 사이의 날짜 수 구하기

24 * 60 * 60 * 1000 = 1일의 밀리초 단위 값으로 계산된 값입니다.

즉, 1일은  24시간 * 60분 * 60초 * 1000밀리초  =  86,400,000밀리초가 되기 때문입니다.

import java.util.Calendar;

public class DaysBetweenExample {
    public static void main(String[] args) {
        Calendar cal1 = Calendar.getInstance();
        Calendar cal2 = Calendar.getInstance();
        cal1.set(2022, 0, 1); // 2022년 1월 1일
        cal2.set(2022, 11, 31); // 2022년 12월 31일
        long diffMillis = cal2.getTimeInMillis() - cal1.getTimeInMillis();
        
        //getTimeInMillis 함수를 이용하여 천분의 1초 단위까지 반환
        
        long diffDays = diffMillis / (24 * 60 * 60 * 1000);
        System.out.println("두 날짜 사이의 일 수는 " + diffDays + "일 입니다.");
    }
}

콘솔값 : 두 날짜 사이의 일 수는 364일 입니다.

3. 특정 날짜의 요일 구하기

DAY_OF_WEEK :

cal.get(Calendar.DAY_OF_WEEK)는 현재 Calendar 객체가 가리키는 날짜의 요일을 나타내는 상수 값을 반환합니다.

반환값은 1부터 7까지의 값을 가지며, 1은 일요일을 나타내고 7은 토요일을 나타냅니다. 따라서 해당 코드의 실행 결과는 현재 cal 객체가 가리키는 날짜의 요일에 해당하는 값이 됩니다.

- > 1 일요일 2 월요일 3 화요일 4 수요일 5 목요일 6 금요일 7 토요일

import java.util.Calendar;

public class DayOfWeekExample {
    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();
        cal.set(2023, 1, 16); // 2023년 2월 16일 
        //2월 16일은 목요일이니까 
        int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
        String dayOfWeekStr = "";
        switch (dayOfWeek) {
            case Calendar.SUNDAY:
                dayOfWeekStr = "일요일";
                break;
            case Calendar.MONDAY:
                dayOfWeekStr = "월요일";
                break;
            case Calendar.TUESDAY:
                dayOfWeekStr = "화요일";
                break;
            case Calendar.WEDNESDAY:
                dayOfWeekStr = "수요일";
                break;
            case Calendar.THURSDAY:
                dayOfWeekStr = "목요일";
                break;
            case Calendar.FRIDAY:
                dayOfWeekStr = "금요일";
                break;
            case Calendar.SATURDAY:
                dayOfWeekStr = "토요일";
                break;
        }
        System.out.println("2023년 2월 16일은 " + dayOfWeekStr + "입니다.");
    }
}

콘솔값 : 2023년 2월 16일은 목요일입니다.

 

 

calendar 클래스에서 month-1이라고 쓰는 이유

cal.set(year, month-1, 1)

Calendar 클래스에서 월(month) 값은 0부터 시작합니다. 즉, 0은 1월, 1은 2월, 2는 3월, ..., 11은 12월을 의미합니다. 따라서, cal.set(year, month-1, 1) 코드에서 month-1을 하는 이유는 사용자가 입력한 월을 Calendar 클래스에서 사용하는 월 값으로 변환하기 위해서입니다.

예를 들어, 사용자가 2022년 3월 1일로 설정하고자 할 경우 cal.set(2022, 3, 1) 코드를 사용하면, Calendar 클래스에서는 4월 1일로 설정됩니다. 따라서, cal.set(2022, 3-1, 1)과 같이 입력하면, Calendar 클래스에서는 3월 1일로 정확하게 설정됩니다.

 

댓글