일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 직장인자기계발
- 직장인인강
- 국비
- 웹
- 자바
- javabasic
- Spring
- String
- 데이터베이스
- java
- 패스트캠퍼스
- ncs
- 자바기본
- 디자인
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online
- 자바기초
- 리눅스
- DB
- 패캠챌린지
- 스프링
- 자바예제
- DesignPattern
- linux
- 재택근무
- 디자인패턴
- 자바연습문제
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online강의
- java기초
- js
- 패스트캠퍼스후기
- Today
- Total
FIF's 코딩팩토리
자바 기초 NCS교육과정(37)-Calendar() 함수 문제풀이 본문
이번 시간은 문제풀이 시간 입니다.
코드를 바로 보지 마시고, 충분한 시간을 가지고 고민해 보세요!
생각하는 시간이 많을수록 실력은 향상됩니다.
Question 1) Prob001_Calendar.java
[출력결과]
<4시부터 12시 미만일때>
지금은 5시 35분입니다.
Good Morning
<12시부터 18시 미만일때>
지금은 16시 49분입니다.
Good Afternoon
<18시부터 22시 미만일때>
지금은 20시 30분입니다.
Good Evening
<그외 일때>
Good Night
public class Prob001_Calendar {
public static void main(String[] args) {
//여기에 구현하세요!
}//end main()
}//end class
Answer 1) Prob005_Calendar.java
public class Prob001_Calendar {
public static void main(String[] args) {
Calendar now = Calendar.getInstance();
int hourOfDay = now.get(Calendar.HOUR_OF_DAY);
int minute = now.get(Calendar.MINUTE);
System.out.println("지금은 " + hourOfDay + "시 " + minute + "분입니다.");
if (hourOfDay >= 4 && hourOfDay < 12)
System.out.println("Good Morning");
else if (hourOfDay >= 12 && hourOfDay < 18)
System.out.println("Good Afternoon");
else if (hourOfDay >= 18 && hourOfDay < 22)
System.out.println("Good Evening");
else
System.out.println("Good Night");
}
}
Question 1) Prob002_Calendar.java
1 년도와 월을 입력받는다.
2 process()메소드에서 달력에 표현해줄 값을 구해서 배열에 저장한
다음 반환한다.
3 prn()메소드에서 아래와 같이 출력한다.
4 출력결과
2012년도 5월
일 월 화 수 목 금 토
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
4 문제해결
getActualMaximum(Calendar.DATE); //각 달의 마지막일
set(year,month,1) //Calendar객체에 새로운 날짜 설정
get(Calendar.DAY_OF_WEEK); //요일 출력 일요일=1, 토요일=7
public class Prob002_Calendar {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("년도입력: ");
int year = sc.nextInt();
System.out.print("월입력: ");
//구현하세요!
}// end main()
public static int[][] process(int year, int month) {
//구현하세요!
}
public static void prn(int arr[][], int year, int month) {
System.out.println(" 일 월 화 수 목 금 토");
//구현하세요!
}// end prn()
}// end class
Answer 1) Prob002_Calendar.java
public class Prob002_Calendar {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("년도입력: ");
int year = sc.nextInt();
System.out.print("월입력: ");
int month = sc.nextInt();
prn(process(year, month), year, month);
}// end main()
public static int[][] process(int year, int month) {
int[][] data = new int[6][7];
Calendar cal = Calendar.getInstance();
/*
* cal.set(Calendar.YEAR, year); cal.set(Calendar.MONTH,month-1);
* cal.set(Calendar.DATE,1);
*/
cal.set(year, month - 1, 1);
// 월의 마지막일
int lastDate = cal.getActualMaximum(Calendar.DATE);
// 1일의 요일
int firstDay = cal.get(Calendar.DAY_OF_WEEK);
int cnt = 1;
label: for (int i = 0; i < 6; i++) {
for (int j = 0; j < 7; j++) {
if (i == 0 && j >= (firstDay - 1))
data[i][j] = cnt++;
else if (i >= 1)
data[i][j] = cnt++;
if (cnt > lastDate)
break label;
}
}
return data;
}
public static void prn(int arr[][], int year, int month) {
System.out.printf("%10d년도 %6d월\n", year, month);
System.out.println(" 일 월 화 수 목 금 토");
for (int i = 0; i < 6; i++) {
for (int j = 0; j < 7; j++) {
if (arr[i][j] == 0)
System.out.printf("%4c", ' ');
else
System.out.printf("%4d", arr[i][j]);
}
System.out.println();
}
}// end prn()
}// end class
'Back-End > 국비 NCS교과과정' 카테고리의 다른 글
자바 기초 NCS교육과정(39)-예외처리 (0) | 2019.08.01 |
---|---|
자바 기초 NCS교육과정(38)-문자열 문제풀이 (0) | 2019.08.01 |
자바 기초 NCS교육과정(36)-Calendar() 함수 (0) | 2019.08.01 |
자바 기초 NCS교육과정(35)-currentTimeMillis() 함수 (0) | 2019.08.01 |
자바 기초 NCS교육과정(34)-스트링 문제풀이 (0) | 2019.07.31 |