문제
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("============================");
}
}