Toggle theme
문제를 잘 정의하는 것은 문제를 절반 해결한 것이다. - 2023.12
사용자 도구
Toggle theme
로그인
사이트 도구
검색
도구
문서 보기
이전 판
PDF로 내보내기
Fold/unfold all
역링크
최근 바뀜
미디어 관리자
사이트맵
로그인
>
최근 바뀜
미디어 관리자
사이트맵
현재 위치:
start
»
wiki
»
miscellaneous
»
크론정리ii
wiki:miscellaneous:크론정리ii
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
====== 크론정리II ====== <WRAP left notice 80%> * description : 크론정리 * author : 오션 * email : shlim@repia.com * lastupdate : 2023-03-14 Tue </WRAP> <WRAP clear></WRAP> \\ ====== 크론정리II ====== <code c> 0 59 23 8 * ? </code> \\ cRonstrue에서 상기 크론식 입력 후 결과는\\ ⇒ "At 11:59 PM, on day 8 of the month"\\ ⇒ "매월 8일 오후 11시 59분" (구글 번역기)\\ **cron Method**\\ <code java> public static boolean isMatchCronExpression(String cronString, int dayOffset) throws ParseException, Exception { boolean bRet = false; SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd", Locale.getDefault()); try { Calendar cal = Calendar.getInstance(); cal.setTime(new Date()); cal.add(Calendar.DATE, dayOffset); CronExpression cronExp = new CronExpression(cronString); Date cronDate = cronExp.getNextValidTimeAfter(cal.getTime()); String cronDateStr = dateFormat.format(cronDate); String compareDateStr = dateFormat.format(cal.getTime()); return compareDateStr.equals(cronDateStr); } catch(ParseException ePe) { throw ePe; } catch(Exception eCommon) { log.error("cronMatch error", eCommon); } return bRet; } </code> \\ **''cron Test Method Detail''**\\ <code java> @Test public void cronTest() { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd", Locale.getDefault()); String userCrontabInputText = "8 * ?"; String cronStr = "0 59 23 " + userCrontabInputText; int userAlarmDt = -2; // -2는 '2일 전 08시'를 의미함 try { Calendar cal = Calendar.getInstance(); //캘린더 객체 생성 log.debug("1. cal = [{}]", cal); //1. cal = [java.util.GregorianCalendar[time=1678751883285,areFieldsSet=true,areAllFieldsSet=true,lenient=true, //zone=sun.util.calendar.ZoneInfo[id="Asia/Seoul",offset=32400000,dstSavings=0,useDaylight=false,transitions=30, //lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2023,MONTH=2,WEEK_OF_YEAR=11,WEEK_OF_MONTH=3, //DAY_OF_MONTH=14,DAY_OF_YEAR=73,DAY_OF_WEEK=3,DAY_OF_WEEK_IN_MONTH=2,AM_PM=0,HOUR=8,HOUR_OF_DAY=8,MINUTE=58,SECOND=3, //MILLISECOND=285,ZONE_OFFSET=32400000,DST_OFFSET=0]] cal.setTime(ndw Date()); //현재 날짜시간으로 캘린터 객체 cal을 설정 log.debug("2. cal.getTime() = [{}]", cal.getTime()); //2. cal = [2023-03-14T08:58:03.295+0900] cal.add(Calendar.DATE, userAlarmDt); // } } </code> ==== Ref LInk ==== [[https://bradymholt.github.io/cRonstrue/|cRonstrue-translate cron expression to human readable descriptions]]\\ {{tag> 오션 cron 크론 크론정리II}}
/volume1/web/dokuwiki/data/pages/wiki/miscellaneous/크론정리ii.txt
· 마지막으로 수정됨: 2023/03/14 10:46 저자
emblim98
문서 도구
문서 보기
이전 판
역링크
PDF로 내보내기
Fold/unfold all
맨 위로