2015 IT 웹 기반 개발자과정/JAVA
JAVA 달력만들기 [이전달, 현재달, 다음달]
by 한여름밤의코딩
2015. 11. 12.
package src.kr.ac.jnu.day04.CalendarHomework;
public class CalendarMain {
public static void main(String[] args) {
new CalendarVw().start();
}
}
=============================================================================
package src.kr.ac.jnu.day04.CalendarHomework;
import java.util.Scanner;
public class CalendarVw {
private Scanner sc = new Scanner(System.in);
private CalendarUtil u = new CalendarUtil();
private int getMsg(String msg) {
System.out.println(msg);
return sc.nextInt();
}
public void start() {
while (true) {
int command = getMsg("항목을 선택하세요 \n 1. 현재 달 보기 2. 지난 달 보기 3. 다음 달 보기 4. 종료 :");
switch (command) {
case 1:
u.getNow(0);
break;
case 2:
u.getNow(-1); //이전 달
break;
case 3:
u.getNow(1); // 다음 달
break;
case 4:
System.out.println("종료합니다.");
System.exit(0);
break;
default:
System.out.println("잘못 입력하셨습니다.");
break;
}
}
}
}
=============================================================================
package src.kr.ac.jnu.day04.CalendarHomework;
import java.util.Calendar;
import java.util.Date;
public class CalendarUtil {
public void getNow(int a) {
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR); //현재 년 구하기
int month = c.get(Calendar.MONTH) + 1 + a; //현재 달 구하기
c.set(year, month - 1, 1);
int week = c.get(Calendar.DAY_OF_WEEK);
int lastDay = c.getActualMaximum(Calendar.DATE);
System.out.println("<< "+year + " 년 " + month + " 월"+" >>");
System.out.println("===================================================");
System.out.println(" 일\t 월\t 화\t 수\t 목\t 금\t 토\t");
show(week, lastDay);
}
private void show(int week, int lastDay) {
int Cnt = 0;
for (int i = 1; i < week; i++) {
System.out.print("\t");
Cnt++;
}
for (int i = 1; i <= lastDay + 1; i++) {
System.out.printf("%2d\t", i);
Cnt++;
if (Cnt % 7 == 0)
System.out.println();
}
System.out.println();
System.out.println("===================================================");
}
}