알고리즘 공부(3)

흑이·2022년 5월 6일
0

문제

달력 출력 프로그램
- 입력 받은 년도와 월을 통한 달력 생성
- 입력값은 년도, 월을 입력
- 날짜는 LocalDate클래스를 이용(Calendar와 Date클래스 이용 가능)


import java.time.LocalDate;
import java.time.temporal.ChronoField;
import java.util.Scanner;

public class Quiz05 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("[달력 출력 프로그램]");
        System.out.print("달력의 년도를 입력해 주세요.(yyyy):");
        int year = sc.nextInt();
        System.out.print("달력의 월을 입력 주세요.(mm):");
        int month = sc.nextInt();

        LocalDate monthstart = LocalDate.of(year, month, 1);
        int monthday = monthstart.get(ChronoField.DAY_OF_WEEK); //해당 월의 첫 번째 요일 확인
        int monthend = monthstart.lengthOfMonth();  // 해당 월의 마지막일

        System.out.println();

        System.out.println("[" + year + "년 " + month + "월" + "]");
        System.out.println("일\t월\t화\t수\t목\t금\t토");
//                          0   1  2   3  4   5  6
        int totalCount = 0;

        for (int i = 0; i < monthday; i++) {
            totalCount++;
        }
        for (int j = 1; j <= monthend; j++) {
            System.out.printf(String.format("%02d\t", j));
            totalCount++;
            if (totalCount % 7 == 0) {
                System.out.println();
            }
        }
    }
}

구글링을 통해... LocalDate 클래스 사용...
LocalDate 를 이용하여 해당 월의 첫 번째 요일, 마지막일 확인
for문을 이용하여 구현하였다..

0개의 댓글