본문 바로가기
Java

[JAVA]Calendar 사용해서 현재 요일, 지정 요일 가져오기

by teamnova 2023. 1. 31.
728x90

안녕하세요. 오늘은 Calendar 사용해서 요일 가져오기를 해보겠습니다.

 

Calendar 클래스는 특정 순간과 YEAR, MONTH, DAY_OF_MONTH, HOUR 등과 같은 달력 필드 집합 간의 변환과 날짜 가져오기와 같은 달력 필드 조작을 위한 메서드를 제공합니다.

 

요일 뿐만아니라 년,월.일, 연 중의 몇 주인지,월 중의 몇 주 인지 등 문서확인해서 필요한 요소를 가져다 쓰면 좋을 것 같네요

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class MyDate {

    int dayNum=0;
    Calendar cal;
    MyDate(){
        cal=Calendar.getInstance() ;
    }
    public String getDateDay(String date){
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd") ; //date format 일치해야함
        Date nDate = null;
        try {
            nDate = dateFormat.parse(date);
            cal.setTime(nDate);
            dayNum = cal.get(Calendar.DAY_OF_WEEK) ;
            cal=null;
            cal=Calendar.getInstance();
        } catch (ParseException e) {
            //매개변수 date 와 pattern format 과 맞지 않으면 예외
            e.printStackTrace();
        }
        return getDayStr(dayNum);
    }
    public String getDateDay(){
        dayNum = cal.get(Calendar.DAY_OF_WEEK) ;
        return getDayStr(dayNum);
    }
    public String getDayStr(int dayNum){
        String day="";
        switch(dayNum){
            case 1:
                day = "일요일";
                break ;
            case 2:
                day = "월요일";
                break ;
            case 3:
                day = "화요일";
                break ;
            case 4:
                day = "수요일";
                break ;
            case 5:
                day = "목요일";
                break ;
            case 6:
                day = "금요일";
                break ;
            case 7:
                day = "토요일";
                break ;
        }
        return day;
    }
}

 

public class Main {
    public static void main(String[] args){
        MyDate myDate=new MyDate();
        System.out.println(myDate.getDateDay());
        System.out.println(myDate.getDateDay("20221214"));
    }
}

 

 

https://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html

 

Calendar (Java Platform SE 7 )

Adds or subtracts (up/down) a single unit of time on the given time field without changing larger fields. For example, to roll the current date up by one day, you can achieve it by calling: roll(Calendar.DATE, true). When rolling on the year or Calendar.YE

docs.oracle.com