본문 바로가기
경제경영비즈니스

자바 코팅 : 달력을 만들기 /연도 맞추어 달마다 만들기/윤달인 경우/ 줄바꾸어 요일별 날짜 맞추기

by 에이스토리1 2024. 5. 17.
728x90
반응형
package j00_api;

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

public class CalendarEX {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //년월일입력
        System.out.print("년도->");
        int y = scan.nextInt();
        System.out.print("월->");
        int m = scan.nextInt();
        System.out.println("\t\t" + y + "년" + m + "월");
        System.out.println("일\t월\t화\t수\t목\t금\t토");


        //오늘 날짜의 카렌더 객체를 구하기
        Calendar date = Calendar.getInstance();
        //입력받으 년,월,일로 Caleder 객체의 날짜를 변경한다.
        date.set(y, m-1, 1);
        //1일에 대한 요일구하기
        int week = date.get(Calendar.DAY_OF_WEEK);
        //1일을 출력하기 전에 공백을 출력한다. 요일의 값을 이용한다
        for (int s = 1; s < week; s++) {
            System.out.print("-\t");
        }
            // 30->4,6,9,11
            // 31->1,3,5,7,8,10,12
            //28,29->2

            /* int lastday = 31;
            switch (m) {
                case 4:
                case 6:
                case 9:
                case 11:
                    lastday = 30;
                    break;
                case 2:
                    lastday = 28;

                    // 윤년구하기
                    if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0) {
                        lastday = 29;
                    }
            }*/
             //마지막날
             int lastDay = date.getActualMaximum(Calendar.DAY_OF_MONTH);
            //날짜 출력
            for (int d = 1; d <= lastDay; d++) {
                System.out.print(d + "\t");
                if ((week - 1 + d) % 7 == 0) { //출력한 갯수가 7개일때
                    System.out.println();
                }
            }
            System.out.println();
        }
    }

반응형