본문 바로가기
Study/Java

[JAVA]입력받은날짜의 해당주(week)날짜구하기

by 오늘만 사는 여자 2021. 1. 19.
728x90
반응형
특정날짜구하기같은 경우 쿼리로 구해오는 경우가 많은데
어떨땐 자바에서 구해야할때가 있다.
입력받은날짜로 해당주의 날짜구하기 (ex. 20100203의 경우 20100201,20100202,20100202,20100203,20100204,20100205,20100206,20100207를 스트링배열로 리턴받음)

/**
	 * 특정 날짜가 포함된 주 날짜들 return
	 * @param dateStr
	 * @return
	 */
	public static String[] getDaysOfWeek(String dateStr) {
		DateFormat df = new SimpleDateFormat("yyyy.MM.dd");
		String[] arrYMD = new String[7];
		try {
			Date date = df.parse(dateStr);
			Calendar cal = Calendar.getInstance();
			cal.setTime(date);
			
			int inYear = cal.get(cal.YEAR); 
		    int inMonth = cal.get(cal.MONTH);
		    int inDay = cal.get(cal.DAY_OF_MONTH);
		    
		    int yoil = cal.get(cal.DAY_OF_WEEK); //요일나오게하기(숫자로)
		    if(yoil != 1){   //해당요일이 일요일이 아닌경우
		        yoil = yoil-2;
		     }else{           //해당요일이 일요일인경우
		        yoil = 7;
		     }
		    inDay = inDay-yoil;
		    
		    for(int i = 0; i < 7;i++){
		     cal.set(inYear, inMonth, inDay+i);  //
		     String y = Integer.toString(cal.get(cal.YEAR)); 
		     String m = Integer.toString(cal.get(cal.MONTH)+1);
		     String d = Integer.toString(cal.get(cal.DAY_OF_MONTH));
		     if(m.length() == 1) m = "0" + m;
		     if(d.length() == 1) d = "0" + d;
		     
		     //arrYMD[i] = y+m +d;
		     arrYMD[i] = m +"."+d;
		    }
		} catch (ParseException e) {
		}
		
		return arrYMD;
	}

 

출처 : sepiroth11.tistory.com/entry/JAVA-%EC%9E%85%EB%A0%A5%EB%B0%9B%EC%9D%80%EB%82%A0%EC%A7%9C%EC%9D%98-%ED%95%B4%EB%8B%B9%EC%A3%BCweek%EB%82%A0%EC%A7%9C%EA%B5%AC%ED%95%98%EA%B8%B0

728x90
반응형

댓글