✅ Q0. DataAccessObject.java
❎ Q1. UserApp.java
userInput[step] = null; 을 해주지 않았다 !!
userInput[step] != null 일때만 실행되므로 null을 해주어야함.
❎ Q2. TaskManageMent.java
풀지못했다. 전체적인 작업과정을 이해하지 못했고, DayOfWeek과 dayIdx 사이의 관계를 이해하지 못했었음
맨마지막에 dayOfWeek++만 해주면 됐던 단순한 문제였지만 전체적인 반복문의 흐름을 이해하지 못하면 풀지 못하는 문제..
토요일에 줄바꿈을 해주어야함.
✅ Q3. TaskManageMent.java
days[] 안에 요소랑 dayIdx가 같으면 +을 append
makeCalendar 전체 코드
/* 특정 달의 할일이 등록되어있는 날짜를 특정 달의 달력에 표시하기 */
private String makeCalendar(String[] days, LocalDate today) {
// 10:13:16:19:28
// split(":");
// days = {"10","13","16","19","28"};
StringBuffer calendar = new StringBuffer();
int dayOfWeek = LocalDate.of(today.getYear(), today.getMonthValue(), 1).getDayOfWeek().getValue();
// 1일의 요일을 숫자로 표기
int lastDay = today.lengthOfMonth();
// 달의 말일
String pattern = "yyyy. MM";
dayOfWeek = (dayOfWeek == 7) ? 1 : dayOfWeek + 1; //일요일이면 1, 아니면 +1
//일요일 1, 월요일 2, 화요일 3, 수요일 4, 목요일 5, 금요일 6, 토요일 7
//원래는 월요일 1 ... 일요일 7
calendar.append("\n\t+++++++++++ Previous [ " + today.format(DateTimeFormatter.ofPattern(pattern))
+ " ] Next +++++++++++\n");
calendar.append("\tSUN\tMON\tTUE\tWED\tTHU\tFRI\tSAT\n");
for (int dayIdx = 1; dayIdx <= lastDay; dayIdx++) { // 1일부터 말일까지 반복
if (dayIdx == 1) { // 1일이면
for (int i = 0; i < dayOfWeek - 1; i++) { //
calendar.append("\t");
}
}
calendar.append("\t");
calendar.append((dayIdx < 10 ? " " : "") + dayIdx);
try {
if (days[0] != "") {
/* [코드 작성 구역 3]
* 우리는 database의 TODO.txt 파일로 부터 계정 일정정보를 얻어와,
* 일정이 있는 날짜를 days 라는 1차 String 배열로 전달 받아 옵니다.
//days = {"10","13","16","19","28"};
* 해당 일정이 존재하는 날에는 +를 추가해주는 코드를 작성해보세요.
*
* 코드는 대략 3~5줄 정도 예상됩니다.
*
* */
//days : 일정 정보
for(int i=0;i<days.length;i++) {
if(Integer.parseInt(days[i]) ==dayIdx) {
calendar.append("+");
}
}
}
} catch (Exception e) {
// TODO: handle exception
}
calendar.append(dayOfWeek % 7 == 0 ? "\n" : "");
//1일이 토요일이면 줄바꿈 (7의 배수)
if (dayIdx == lastDay) { //마지막 날이면 줄바꿈
calendar.append("\n");
}
/* [코드 작성 구역 2]
* 우리는 윗쪽 코드에서 dayOfWeek를 활용해 토요일에 해당하는 날짜를 append한 뒤,
* \n을 append하여, 한줄을 내려주고 있습니다.
* 그러나 실제 출력에서는 줄바꿈이 되지 않고 있습니다.
* 토요일 이후 줄바꿈 처리를 위해 1줄의 코드가 필요합니다.
*
* 코드를 작성해주세요.
*
* */
dayOfWeek++;
}
✅ Q4. TaskManager.java
todoBean에 accessCode와 StartDate, FileIndex를 set해준다.
✅ Q5. TaskManager.java
저번주에는 한줄도 못적었던 것들인데 프로젝트를 하고나니,,,, 조금씩 이해가 되는듯하다.
반응형
댓글