Java 50(Calendar 달력 출력 프로그램)

Kang.__.Mingu·2024년 5월 14일
0

Java

목록 보기
52/108

Calendar 메소드

  • Calendar.set(int field, int value) : Calendar 객체에 저장된 날짜와 시간을 매개변수로

  • Calendar.getActualMaximum(int field) : Calendar 객체에 저장된 날짜와 시간 중 매개변수로 전달받은 상수필드에 대한 최대값을 반환하는 메소드

오라클 Calendar 문서


CurrentCalendarApp

import java.util.Calendar;

//현재 년월에 대한 달력을 출력하는 프로그램 작성
public class CurrentCalendarApp {
    public static void main(String[] args) {
        //플렛폼의 현재 날짜와 시간이 저장된 Calendar 객체를 반환받아 저장
        Calendar calendar=Calendar.getInstance();

        //Calendar 객체에 저장된 날짜와 시간 중 [일]을 [1]일로 변경
        // => 달력에 출력될 년월에 대한 [1]일에 요일을 제공받기 위해 변경 처리
        //Calendar.set(int field, int value) : Calendar 객체에 저장된 날짜와 시간을 매개변수로
        //전달받은 상수필드와 정수값으로 날짜와 시간을 변경하는 메소드
        calendar.set(Calendar.DATE, 1);

        //Calendar 객체에 저장된 날짜와 시간 중 [요일]을 반환받아 저장
        int week=calendar.get(Calendar.DAY_OF_WEEK);
        System.out.println("week = "+week);

        //Calendar 객체에 저장된 날짜와 시간 중 [년도]와 [월]을 반환받아 출력
        System.out.println("         "+calendar.get(Calendar.YEAR)+"년 "
            +(calendar.get(Calendar.MONTH)+1)+"월");
        System.out.println("============================");
        System.out.println("  일  월  화  수  목  금  토");
        System.out.println("============================");

        //[1]일이 출력되기 전까지의 요일을 공백으로 출력
        for(int i=1;i<week;i++) {
            System.out.print("    ");
        }

        //월의 [1]일부터 월의 마지막 일까지 출력
        //Calendar.getActualMaximum(int field) : Calendar 객체에 저장된 날짜와 시간 중 매개변수로
        //전달받은 상수필드에 대한 최대값을 반환하는 메소드
        for(int i=1;i<=calendar.getActualMaximum(Calendar.DATE);i++) {
            //날짜 출력 - 자릿수를 맞춰 출력되도록 선택문 사용
            if(i <= 9) {
                System.out.print("   "+i);
            } else {
                System.out.print("  "+i);
            }

            //요일 증가
            week++;

            //증가된 요일이 [일요일]인 경우
            if(week % 7 == 1) {
                System.out.println();//엔터 출력
            }
        }
        System.out.println();
        System.out.println("============================");
    }
}
profile
최선을 다해 꾸준히 노력하는 개발자 망고입니당 :D

0개의 댓글