반응형
import java.util.Calendar;
import java.util.Scanner;
public class Calendars {
// 스캐너 클래스 정적 메모리 영역에 올림.
static Scanner scanner;
public static void main(String args[]) {
// year(년) mon(월) date(날짜) i(for문시 사용되는) 변수 생성
int year, month, date, i;
Calendar calendar = Calendar.getInstance();
int startDay; // 월 시작 요일
int lastDay; // 월 마지막 날짜
int inputDate = 1; // 입력 날짜
// Scanner클래스 객체생성
scanner = new Scanner(System.in);
// 무한루프 참일경우 루프문을 계속 수행하고 루프문이 거짓이면 루프를 빠져나감
while (true) {
System.out.print("연도를 입력하세요(1900년 이후) : ");
year = scanner.nextInt();
// 년도가 1900년 미만으로 입력하면 프로그램을 종료한다.
if (year < 1900) {
System.out.println("1900년 이전 년도 입니다. 다시 실행하세요.");
System.exit(0);
}
System.out.print("월을 입력하세요(1~12월) : ");
month = scanner.nextInt();
// Calendar에 년,월,일 셋팅
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, month-1);
calendar.set(Calendar.DATE, 1);
startDay = calendar.get(Calendar.DAY_OF_WEEK); // 월 시작 요일
lastDay = calendar.getActualMaximum(Calendar.DATE); // 월 마지막 날짜
System.out.println();
System.out.println("" + year + "년 " + month + "월 달력입니다.");
System.out.println("------------------------------------------------------------");
System.out.printf("일\t월\t화\t수\t목\t금\t토\n");
System.out.println("------------------------------------------------------------");
int weekday = startDay-1 % 7;
for (i = 0; i < weekday; i++) {
System.out.print("\t" + "");
}
for (int j = 1; j <= lastDay; j++) {
if (j%7==0) {
System.out.println();
}
System.out.printf("%d\t", j); // 요일이 토요일이면 다음칸으로 옮겨야 하니까
}
System.out.println("\n-----------------------------------------------------\n");
System.exit(0);
}
}
}
반응형
'Language > Java' 카테고리의 다른 글
쓰레드 (0) | 2016.05.25 |
---|---|
[NIO] 파일 채널(FileChannel) (0) | 2016.04.06 |
Java 줄바꿈 처리 (0) | 2016.03.07 |
SocketAddress 클래스와 NetworkInterface 클래스 (0) | 2015.12.17 |
InetAddress 클래스 (0) | 2015.12.16 |