거꾸로 바라본 세상
Published 2016. 3. 25. 18:35
달력만들기 Language/Java
반응형
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
profile

거꾸로 바라본 세상

@란지에。

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!