1
2
3
4
5
6
7
8
9
10
11
12
| package Java0325.Lecture14.Homework;
public class CalendarMain {
public static void main(String[] args) {
CalendarView view = new CalendarView();
view.process();
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
| package Java0325.Lecture14.Homework;
import java.util.Calendar;
public class CalendarUtil {
public void showDayByYear(int year){
for(int month = 1; month <= 12; month++) {
showDayByMonth(year, month);
}
}
public void showDayByMonth(int year, int month) {
// 해당하는 달의 1일이 몇요일인지? 해당하는 달의 마지막날은 며칠인지?
Calendar c = Calendar.getInstance();
c.set(year, month-1, 1); // 해당월의 1일이 몇 요일인지 알려면 date를 1로 설정
// month/1의 요일?
int startday = c.get(Calendar.DAY_OF_WEEK);
// month/마지막날 며칠까지 있어?
int lastday = c.getActualMaximum(Calendar.DAY_OF_MONTH);
System.out.println("\t\t << " + year + "년" + month + "월 >>");
showDay(startday, lastday);
}
private void showDay(int startday, int lastday) {
System.out.println("----------------------------------------------------");
System.out.println("일\t월\t화\t수\t목\t금\t토");
System.out.println("----------------------------------------------------");
int cnt = 0;
for(int i = 0; i < startday-1; i++) {
System.out.print("\t");
cnt++;
}
for(int day = 1; day <= lastday; day++) {
System.out.print(day + "\t");
if(++cnt % 7 == 0) {
System.out.println();
}
}
if(cnt % 7 != 0) {
System.out.println();
}
System.out.println("----------------------------------------------------");
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
| package Java0325.Lecture14.Homework;
import java.util.Scanner;
public class CalendarView {
private Scanner sc;
public CalendarView() {
sc = new Scanner(System.in);
}
public int getInt(String msg) {
System.out.print(msg);
int no = sc.nextInt();
sc.nextLine();
return no;
}
public void process() {
CalendarUtil util = new CalendarUtil();
loop : while(true) {
int command = getInt("항목을 선택하세요(1.특정년도 2.특정월 3.종료) => ");
int year, month;
switch(command) {
case 1 :
System.out.println("1번선택");
year = getInt("연도를 입력하세요. => ");
util.showDayByYear(year);
break;
case 2 :
System.out.println("2번선택");
year = getInt("연도를 입력하세요. => ");
month = getInt("월을 입력하세요. => ");
util.showDayByMonth(year, month);
break;
case 3 :
System.out.println("프로그램을 종료합니다.");
System.exit(0); // public static형의 System클래스의 메소드 exit()
// break loop;
}
}
}
}
|