выражение cron с пружинным кварцем

Как написать выражения cron для ниже?

  1. первый рабочий день каждого месяца в 00:00:00
  2. 4-й рабочий день каждого месяца в 06:00:00
  3. 00:00:00 в субботу

Основываясь на приведенном выше выражении cron, как получить дату начала и дату окончания?

  1. первое число предыдущего месяца и первое число текущего месяца
  2. 1-е число предыдущего месяца и 3-й рабочий день текущего месяца
  3. Дата понедельника текущей недели и дата субботы текущей недели.

person user1726550    schedule 20.10.2012    source источник


Ответы (1)


Протестировано с планировщиком Quartz:

первый рабочий день каждого месяца в 00:00:00

 0 0 0 1W * ? *

4-й рабочий день каждого месяца в 06:00:00

0 0 6 4W * ? *

00:00:00 в субботу

0 0 0 ? * SAT *
person Tomasz Nurkiewicz    schedule 20.10.2012
comment
Спасибо, Как рассчитать ниже в java. 1. первый день предыдущего месяца и первый день текущего месяца 2.1 предыдущего месяца и 3-й рабочий день текущего месяца 3. Дата понедельника на текущей неделе и дата субботы на текущей неделе . - person user1726550; 20.10.2012
comment
0 0 6 4W * ? * : Возвращение 1970 года как года. - person user1726550; 21.10.2012
comment
Как это будет работать, когда рабочий день праздничный? Как работает вышеуказанное выражение cron? - person user1726550; 21.10.2012
comment
@ user1726550: W — это просто сокращение для дня недели (пн-пт), национальные праздники различаются в каждой стране, и Quartz не может уследить за всеми из них. Что касается других вопросов - попробуйте с простым классом Calendar, это должно вам сильно помочь. Или, лучше, идите на Joda Time. - person Tomasz Nurkiewicz; 21.10.2012
comment
Благодаря Tomasz, я могу получить первую и последнюю дату за последний месяц. Но предположим, что нужно взять eaxmle в одном из приведенных выше выражений cron. 5 ноября. Исходя из этого, я должен получить дату. То есть 4 ноября. Возможно ли это? - person user1726550; 21.10.2012
comment
: Возможно ли это с API Apache Quartz. - person user1726550; 23.10.2012