jmrozanec / cron-utils

Cron utils for parsing, validations and human readable descriptions as well as date/time interoperability.
http://cron-utils.com
Apache License 2.0
1.15k stars 262 forks source link

How to create a cron expression for every N hours between time X to time Y #609

Open elirehema opened 1 year ago

elirehema commented 1 year ago

Hello I was able to create an expression for At 1 minutes past the hour, every 8 hours, between day 1 and 3 of the month, only in 2023

  public static void main(String[] args) {
        CronBuilder builder = CronBuilder.cron(CronDefinitionBuilder.instanceDefinitionFor(CronType.QUARTZ));
        Cron cron = builder
                .withYear(on(2023))
                .withDoM(between(1, 3))
                .withMonth(always())
                .withDoW(questionMark())
                .withHour(every(8))
                .withMinute(on(1))
                .withSecond(on(0))
                .instance();
        System.out.println(cron.asString());
    }

Which produced this output Screenshot from 2023-11-04 11-37-56

But I wanted to do more by specifying the hours between 06:00 AM to 11:59 PM. Something like this Screenshot from 2023-11-04 11-37-41 Thanks for any help or suggestion