Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 아이오닉 스크롤 이벤트
- mysql if
- ajax 사용 예시
- ApexChart
- modal
- Ionic modal
- 스크롤 이벤트 감지
- angular modal
- angular button
- prisma
- route
- formgroup
- 모달
- 검색
- 앵귤러 애니메이션
- Angular Router
- 호버
- Oracle LISTAGG 사용 예시
- angular route
- 옵저버블
- summary
- 스크롤 이벤트
- 셀렉트박스 커스텀
- 앵귤러 모달
- TAILWIND
- scroll
- egov spring ajax 사용 예시
- angular animation
- flex-1
- Router
Archives
- Today
- Total
깜놀하는 해므찌로
Java Calendar 자바 달력형 데이터 날짜 더하기 빼기 함수 예시 본문
반응형
SMALL
@RequestMapping(folderPath + "midArea.do")
public String midArea(@ModelAttribute("searchVO") CmmnDefaultVO searchVO, ModelMap model, HttpServletRequest request) throws Exception {
/* 배열 셋팅 */
Et01VO[] arrEt01VO = null;
Ot01VO[] arrOt01VO = null;
/* 조회 VO */
Et01VO eatTotal = new Et01VO();
Ot01VO overTimeTotal = new Ot01VO();
/* 날짜 포멧 */
String searchStartDate = searchVO.getSearchStartDate();
String searchEndDate = searchVO.getSearchEndDate();
/* 포멧 형식 : 문자열 -> 데이트형 */
SimpleDateFormat formatter = new SimpleDateFormat("yyyy.MM.dd");
/* 포멧 형식 : 데이트형 -> 캘린더형 */
DateFormat dateFormat = new SimpleDateFormat("yyyy.MM.dd");
/* 포멧 */
Date startDate = (Date) formatter.parse(searchStartDate);
Date endDate = (Date) formatter.parse(searchEndDate);
/* 두 날 차이 계산 (일 기준) */
int length = (int)Math.abs((endDate.getTime() - startDate.getTime())/(1000 * 60 * 60 * 24));
/* 날짜 차이 만큼 배열 길이 셋팅 */
arrEt01VO = new Et01VO[length];
arrOt01VO = new Ot01VO[length];
/* 달력 */
Calendar cal = Calendar.getInstance();
/* 두 날 차이가 30일 초과 시 셋팅*/
if(length > 31){
cal.setTime(endDate);
cal.add(Calendar.DATE, -30);
}else{
/* 두 날 차이가 30일 이하 시 달력 날짜 셋팅 */
cal.setTime(startDate);
}
/* 전체 월 셋팅 */
for(int i = 1, cnt = 0; i <= length; i++, cnt++){
/* 달력 일 +1 */
if(i != 1){
cal.add(Calendar.DATE, 1);
}
/* 캘린더형 -> 데이트형 -> 문자열 형변환 */
String tempDate = dateFormat.format(cal.getTime());
/* DB 조회 전 날짜 값 셋팅 */
searchVO.setSchEtc01(tempDate);
/* tempVO */
Et01VO et01VO = new Et01VO();
Ot01VO ot01VO = new Ot01VO();
/* DB 조회 및 결과 담기*/
arrEt01VO[cnt] = (Et01VO)cmmnService.selectContents(searchVO, PROGRAM_ID + ".Qeury" );
if(null == arrEt01VO[cnt]){ // 조회 결과가 null 일 경우 날짜 값 셋팅
et01VO.setEatDate(searchVO.getSchEtc01());
arrEt01VO[cnt] = et01VO;
}
arrOt01VO[cnt] = (Ot01VO)cmmnService.selectContents(searchVO, PROGRAM_ID + ".Qeury");
if(null == arrOt01VO[cnt]){ // 조회 결과가 null 일 경우 날짜 값 셋팅
ot01VO.setApplyDate(searchVO.getSchEtc01());
arrOt01VO[cnt] = ot01VO;
}
} // for
/* 식대 총계 */
eatTotal = (Et01VO)cmmnService.selectContents(searchVO, PROGRAM_ID + ".Qeury");
/* 초과근무 총계 */
overTimeTotal = (Ot01VO)cmmnService.selectContents(searchVO, PROGRAM_ID + ".Qeury");
model.addAttribute("eatTotal", eatTotal);
model.addAttribute("overTimeTotal", overTimeTotal);
model.addAttribute("arrEt01VO", arrEt01VO);
model.addAttribute("arrOt01VO", arrOt01VO);
return folderPath + "midArea";
}
1. JSP 로부터 넘겨받은 날짜 값 예시: "2022.08.15" 문자열 -> 달력형 형변환
2. 두 개의 날짜 시작, 종료일을 각각 입력 받아 두 날짜의 차이를 계산 (일 기준)
3. 일 기준 더하기 빼기 연산
4. 연산 완료 후 다시 문자열로 형변환
5. DB 조회 시 조건절로 활용
반응형
LIST
'IT' 카테고리의 다른 글
Java 자바 GET 방식 값 Controller 에서 가져오는 방법 예시 (0) | 2022.08.29 |
---|---|
CSS Block Level 블록 레벨 Inline Level 로 변경하기 예시 <h>태그 (0) | 2022.08.28 |
Oracle 또는 ? 값이 들어가는 경우 해결 방법 (0) | 2022.08.26 |
Spring Egov Java Interceptor 인터셉터 이메일 수신자 계정으로 자동 로그인 구현 예시 (0) | 2022.08.25 |
HighChart Chart Context Menu 없애는 법 / 하이차트 메뉴 없애는 법 2가지 (0) | 2022.08.24 |