Java 56(WantCalendar 프로그램)

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

Java

목록 보기
58/108

문제

  • 키보드로 [년]과 [월]을 입력받아 해당 년월에 대한 달력을 출력하는 프로그램 작성

WantCalendarApp

import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Scanner;

public class WantCalendarApp {
    // Scanner, Calendar
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        System.out.print("보고싶은 달력의 년도를 입력해주세요 >> ");
        int year = sc.nextInt();
        System.out.print("달력의 월도 입력해주세요: ");
        int month = sc.nextInt();

        // 현재 날짜 가져옴
        Calendar calendar = new GregorianCalendar(year, month -1, 1);
/*
        Calendar calendar = Calendar.getInstance();

        calendar.set(year, month-1, 1);

        calendar.set(Calendar.YEAR, year);
        // 월
        calendar.set(Calendar.MONTH, month - 1);
        // 일
        calendar.set(Calendar.DATE, 1);
*/
        int week = calendar.get(Calendar.DAY_OF_WEEK);
        System.out.println(week);
/*
        // System.out.println(calendar);

        // 입력받은 날짜로 갈아줘야됨
        String printDate = calendar.get(calendar.YEAR) + "년 " +
            (calendar.get(calendar.MONTH)+1) + "월 " +
            calendar.get(calendar.DATE) + "일 " +
            day[calendar.get(calendar.DAY_OF_WEEK) - 1] + "요일";

        System.out.println("현재 날짜 = " + printDate);
*/
        // 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++) {
            // 날짜 출력 - 자릿수를 맞춰 출력되도록 선택문 사용
            // 10일 밑에 애들 => 일의자리 애들만 3칸 십의자리 애들은 2칸
            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개의 댓글