2주차 study

    Q0. DataAccessObject.java 

    경로 입력하는 문제

    Q1. UserApp.java 

    코드 작성 구역 1
    내가 작성한 답
    해답

    userInput[step] = null; 을 해주지 않았다 !!

    요놈때문에 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 

    내가 적은 답
    해답

    저번주에는 한줄도 못적었던 것들인데 프로젝트를 하고나니,,,, 조금씩 이해가 되는듯하다.

    반응형

    'STUDY' 카테고리의 다른 글

    5주차 study  (0) 2022.11.27
    4주차 study  (0) 2022.11.19
    3주차 study  (2) 2022.11.12
    1주차 study  (0) 2022.10.29

    댓글