관리 메뉴

오버플로

[Java] Calendar Class(2) 본문

Java

[Java] Calendar Class(2)

NACO 2021. 8. 3. 23:13

# 오늘의 코딩 #

Calendar Class 를 사용하여 달력을 만들어보자!

- 1일에 해당하는 요일부터 달력시작

- 토요일이면 줄 변경하기

- 연, 월을 설정할 수 있게 작성

 

package test;

import java.util.Calendar;

/**
 * 달력 만들기<br>
 * @author user
 */
public class MyCalendar {

	public MyCalendar() {

		Calendar cal = Calendar.getInstance(); // 객체 생성
		cal.set(Calendar.YEAR, 2021); // 년도 setting
		cal.set(Calendar.MONTH, 9); // 월 setting. 실제 월 - 1

		System.out.println(cal.get(Calendar.YEAR) + "년 " + (cal.get(Calendar.MONTH) + 1) + "월");

		System.out.println("------------------------------------------------------");
		System.out.printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\n", "일", "월", "화", "수", "목", "금", "토");
		System.out.println("------------------------------------------------------");

		for (int tempDay = 1; tempDay < 32; tempDay++) { // 최대 31일까지
			cal.set(Calendar.DAY_OF_MONTH, tempDay); // 임시일자로 달력객체 설정

			if (tempDay == 1) {// 1일 출력 전 만들어야 하는 공백의 수
				for (int blank = 1; blank < cal.get(Calendar.DAY_OF_WEEK); blank++) // 1일의 요일을 가져와서 그 수 만큼 공백 생성
					System.out.print("\t");
			} // end if

			if (cal.get(Calendar.DAY_OF_MONTH) != tempDay) { // 달의 말일보다 큰 값으로 날짜가 설정되면 자동으로 다음달 날짜가 되는 것을 검증
				break; // 그 달의 말일과 tempDay가 다르면 break
			} // end if

			System.out.printf("%-3d\t", cal.get(Calendar.DAY_OF_MONTH)); // 일자 출력

			switch (cal.get(Calendar.DAY_OF_WEEK)) {
			case Calendar.SATURDAY:
				System.out.println();// 토요일이면 줄변경
			}// end switch

		} // end for

	}// MyCalendar

	public static void main(String[] args) {

		new MyCalendar();

	}// main

}// class

 

# 출력 결과 #

 

>> 말일이랑 요일때문에 좀 헷갈렸지만 성공 :)))) 

'Java' 카테고리의 다른 글

[Java] DecimalFormat Class  (0) 2021.08.06
[Java] import / static import  (0) 2021.08.05
[Java] Calendar Class / VO Class  (0) 2021.08.02
[Java] Date Class / SimpleDateFormat Class / Locale Class  (0) 2021.08.01
[Java] StringTokenizer  (0) 2021.07.30
Comments