DateBuilder is used to conveniently create java.util.Date instances that meet particular criteria.

Quartz provides a builder-style API for constructing scheduling-related entities via a Domain-Specific Language (DSL). The DSL can best be utilized through the usage of static imports of the methods on the classes TriggerBuilder, JobBuilder, DateBuilder, JobKey, TriggerKey and the various ScheduleBuilder implementations.

Client code can then use the DSL to write code such as this:

 JobDetail job = newJob(MyJob.class) .withIdentity("myJob") .build(); Trigger trigger = newTrigger() .withIdentity(triggerKey("myTrigger", "myTriggerGroup")) .withSchedule(simpleSchedule() .withIntervalInHours(1) .repeatForever()) .startAt(futureDate(10, MINUTES)) .build(); scheduler.scheduleJob(job, trigger); 
        /// <summary>
        /// Create a CronScheduleBuilder with a cron-expression that sets the
        /// schedule to fire at the given day at the given time (hour and minute) on the given days of the week.
        /// </summary>
        /// <param name="hour">the hour of day to fire</param>
        /// <param name="minute">the minute of the given hour to fire</param>
        /// <param name="daysOfWeek">the days of the week to fire</param>
        /// <returns>the new CronScheduleBuilder</returns>
        /// <seealso cref="CronExpression" />
        public static CronScheduleBuilder AtHourAndMinuteOnGivenDaysOfWeek(int hour, int minute, params DayOfWeek[] daysOfWeek)
        {
            if (daysOfWeek == null || daysOfWeek.Length == 0)
            {
                throw new ArgumentException("You must specify at least one day of week.");
            }

            DateBuilder.ValidateHour(hour);
            DateBuilder.ValidateMinute(minute);

            string cronExpression = string.Format("0 {0} {1} ? * {2}", minute, hour, ((int)daysOfWeek[0]) + 1);

            for (int i = 1; i < daysOfWeek.Length; i++)
            {
                cronExpression = cronExpression + "," + (((int)daysOfWeek[i]) + 1);
            }

            return(CronScheduleNoParseException(cronExpression));
        }