2017-05-22 7 views
2

나는 초기 날짜와 cron 표현식을 가지고있다. 이 cron 표현을 만족시키는 다음 날짜를 어떻게 찾을 수 있습니까? 초기 LocalDateTime 및 cron 표현식에서 다음 LocalDateTime을 얻는 방법은 무엇입니까?

String cronExpresion = "* * * * * *" 
    LocalDateTime initial = LocalDateTime.now() 
    LocalDateTime next = ? 

나는 CronSequenceGenerator하고 다음() 방법을 시도하지만, java.util.Date를 사용하고 내가 날짜에 그 반대 LocalDateTime을 변환하지 않으려는 것입니다. 게다가, 나는 '10 초마다'같은 cron을 사용하여 여러 가지 결과 (두 날짜 사이의 시간)를 여러 번 실행했습니다. ...

아이디어가 있으십니까? lib?

+2

이미이 프로젝트를 살펴 보았습니까? https://github.com/frode-carlsen/cron? – Rlarroque

+0

@Rlarroque 내가 "비공식"종류의 라이브러리를 사용할 수 있는지 확신하지 못한다. 내가 직접 리메이크하지 않는 한, 나는 그것을 조사 할 것이다. :) – gnostrenoff

+1

나는 이것을 수행하는 알고리즘을 구현하는 것이 너무 광범위 할 것이라고 생각한다. 그렇지만 라이브러리 권장 사항은 여기에서 주제와 관련이 없습니다. 이미 특정 라이브러리를 사용하고 있다면 해당 라이브러리로 질문 범위를 좁히고 (질문 및 태그 편집) 적합한 대답을 얻을 수 있습니다. 그렇지 않으면이 질문은 아마도 닫힐 것입니다. –

답변

2

Omnicron (https://github.com/intelie/omnicron는) 요구 사항의 적어도 일부 만족하는 것 같다. (임의의 임시 값뿐만 아니라 ZonedDateTime를 크론 :: 다음과 크론 :: 이전 동의)

Cron cron = new Cron("*/5 * * * *"); 
ZonedDateTime date = ZonedDateTime.now(); 

System.out.println("Next execution: " + cron.next(date)); 
System.out.println("Prev execution: " + cron.prev(date)); 

을 제외하고

그걸로 Omnicron은 보너스로 Spring의 CronSequenceGenerator (https://github.com/intelie/omnicron/blob/master/src/test/java/net/intelie/omnicron/SpringCompatibilityTest.java)와 호환됩니다.

관련 문제