<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>CronTrigger</title>
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>

<link rel="shortcut icon" href="/img/jakarta-favicon.ico">
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="CronTrigger";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../jakarta/enterprise/concurrent/ContextServiceDefinition.List.html" title="annotation in jakarta.enterprise.concurrent"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../jakarta/enterprise/concurrent/LastExecution.html" title="interface in jakarta.enterprise.concurrent"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?jakarta/enterprise/concurrent/CronTrigger.html" target="_top">Frames</a></li>
<li><a href="CronTrigger.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">jakarta.enterprise.concurrent</div>
<h2 title="Class CronTrigger" class="title">Class CronTrigger</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>jakarta.enterprise.concurrent.CronTrigger</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../jakarta/enterprise/concurrent/Trigger.html" title="interface in jakarta.enterprise.concurrent">Trigger</a>, <a href="../../../jakarta/enterprise/concurrent/ZonedTrigger.html" title="interface in jakarta.enterprise.concurrent">ZonedTrigger</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">CronTrigger</span>
extends java.lang.Object
implements <a href="../../../jakarta/enterprise/concurrent/ZonedTrigger.html" title="interface in jakarta.enterprise.concurrent">ZonedTrigger</a></pre>
<div class="block"><p>Cron-based <a href="../../../jakarta/enterprise/concurrent/Trigger.html" title="interface in jakarta.enterprise.concurrent"><code>Trigger</code></a> implementation, which supports 5 or 6 fields
 delimited by a single space character, plus a <code>ZoneId</code>.
 Basic cron syntax is supported. For more advanced scenarios, you can
 subclass this implementation or combine multiple <code>CronTrigger</code>
 instances in a <code>Trigger</code> implementation of your own.
 </p>
 <table>
 <caption><b>Cron Expression Fields</b></caption>
 <tr valign="top"><td>seconds (optional)</td><td>0-59, *. When absent, 0 is assumed</td></tr>
 <tr valign="top"><td>minutes</td><td>0-59, *</td></tr>
 <tr valign="top"><td>hours</td><td>0-23, *</td></tr>
 <tr valign="top"><td>dayOfMonth</td><td>0-31, *, L</td></tr>
 <tr valign="top"><td>month</td><td>1-12, JAN-DEC, January-December, *</td></tr>
 <tr valign="top"><td>dayOfWeek</td><td>SUN-SAT, Sunday-Saturday, 0-7, *.
         0 and 7 both represent Sunday: 0 to designate the first day of the week,
         and 7 for consistency with <code>DayOfWeek</code>.</td></tr>
 </table>
 <br>
 <table>
 <caption><b>Cron Expression Syntax</b></caption>
 <tr valign="top"><td><code>,</code></td>
     <td>delimits lists for all fields. For example, <code>MON,WED,FRI</code> or <code>MAY,SEP</code></td></tr>
 <tr valign="top"><td><code>-</code></td>
     <td>delimits ranges for all fields. For example, <code>MON-FRI</code> or <code>9-17</code></td></tr>
 <tr valign="top"><td><code>/</code></td>
     <td>specifies a repeating increment for all fields except dayOfWeek.
     For example, <code>6/7</code> for the <code>hours</code> field equates to <code>6,13,20</code>.</td></tr>
 <tr valign="top"><td><code>#</code></td>
     <td>specifies an ordinal day of week. For example,
     <code>FRI#1,SAT#L</code> is the first Friday and last Saturday of the month.
     <br><code>#</code> cannot be used within ranges (<code>-</code>) and increments (<code>/</code>).</td></tr>
 <tr valign="top"><td><code>*</code></td>
     <td>indicates any value is permitted.</td></tr>
 <tr valign="top"><td><code>L</code></td>
     <td>indicates the last day of the month.
     <code>2L</code> indicates the second-to-last day, and so forth.</td></tr>
 </table>
 <br>
 <table>
 <caption><b>Cron Expression Examples</b></caption>
 <tr valign="top"><td><code>0 * * * *</code></td>
                  <td>every hour at the top of the hour</td></tr>
 <tr valign="top"><td><code>0 9-17 * * MON-FRI</code></td>
                  <td>weekdays from 9am to 5pm, at the top of each hour</td></tr>
 <tr valign="top"><td><code>0 13/3 * MAY-SEP SAT,SUN</code></td>
                  <td>weekends from May to September, every 3 hours, starting at 1pm</td></tr>
 <tr valign="top"><td><code>30 10 * APR,AUG TUE#2,TUE#L</code></td>
                  <td>second and last Tuesdays of April and August at 10:30am</td></tr>
 <tr valign="top"><td><code>15 22 4 10,20,L * *</code></td>
                  <td>4:22:15 AM on the 10th, 20th, and last day of every month</td></tr>
 <tr valign="top"><td><code>0 8-11,13-16 2L JAN-MAR *</code></td>
                  <td>8AM-11AM and 1PM-4PM on the second-to-last day of January, February, and March</td></tr>
 </table>
 <p>A constructor is provided that accepts a cron expression such as the above and a timezone id. For example,
 <pre>
 trigger = new CronTrigger("0 7 * SEP-MAY MON-FRI", ZoneId.of("America/New_York"));
 </pre>
 <p>Another constructor allows cron fields to be specified in a fluent manner, in any order. For example,
 <pre>
 trigger = new CronTrigger(ZoneId.of("America/Los_Angeles"))
           .months(Month.DECEMBER)
           .daysOfMonth(24)
           .hours(16, 18);
 </pre>
 <p>
 The <a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#getNextRunTime-jakarta.enterprise.concurrent.LastExecution-java.time.ZonedDateTime-"><code>getNextRunTime</code></a> method of this trigger
 determines the next run time based on the cron schedule.
 The <a href="../../../jakarta/enterprise/concurrent/ZonedTrigger.html#skipRun-jakarta.enterprise.concurrent.LastExecution-java.time.ZonedDateTime-"><code>skipRun</code></a> method always returns false
 unless overridden by a subclass.
 <p>
 Methods of this class that configure the cron expression fields are not thread safe. It is the
 responsibility of the caller to ensure that initialization of the <code>CronTrigger</code>
 happens before it is supplied to a <a href="../../../jakarta/enterprise/concurrent/ManagedScheduledExecutorService.html" title="interface in jakarta.enterprise.concurrent"><code>ManagedScheduledExecutorService</code></a> and that the
 <code>CronTrigger</code> is not subsequently modified.
 <p>
 You can subclass <code>CronTrigger</code> to provide for more complex logic, such as in the following
 example of combining two triggers to schedule twice-a-month payroll on the 15th and last day of month
 or the prior Fridays when the former fall on a weekend:
 <pre>
 public class PayrollTrigger extends CronTrigger {
     private final CronTrigger fridaysBeforeWeekendPayrollDay;

     PayrollTrigger() {
         // Every 15th and last day of the month that is a weekday,
         super("0 10 15,L * MON-FRI", ZoneId.of("America/Chicago"));

         // Every 13th, 14th, third-to-last, and second-to-last day of the month that is a Friday,
         fridaysBeforeWeekendPayrollDay = new CronTrigger(
                 "0 10 13,14,3L,2L * FRI", getZoneId());
     }

     public ZonedDateTime getNextRunTime(LastExecution lastExec, ZonedDateTime scheduledAt) {
         ZonedDateTime time1 = super.getNextRunTime(lastExec, scheduledAt);
         ZonedDateTime time2 = fridaysBeforeWeekendPayrollDay.getNextRunTime(lastExec, scheduledAt);
         return time1.isBefore(time2) ? time1 : time2;
     }
 }
 </pre></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.0</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#CronTrigger-java.lang.String-java.time.ZoneId-">CronTrigger</a></span>(java.lang.String&nbsp;cron,
           java.time.ZoneId&nbsp;zone)</code>
<div class="block">Constructor that accepts a cron expression.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#CronTrigger-java.time.ZoneId-">CronTrigger</a></span>(java.time.ZoneId&nbsp;zone)</code>
<div class="block">Constructor for the fluent configuration pattern.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#daysOfMonth-int...-">daysOfMonth</a></span>(int...&nbsp;d)</code>
<div class="block">Configure the day-of-month cron field, overwriting any previous value for day-of-month.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#daysOfMonth-java.lang.String-">daysOfMonth</a></span>(java.lang.String&nbsp;d)</code>
<div class="block">Configure the day-of-month cron field, overwriting any previous value for day-of-month.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#daysOfWeek-java.time.DayOfWeek...-">daysOfWeek</a></span>(java.time.DayOfWeek...&nbsp;d)</code>
<div class="block">Configure the day-of-week cron field, overwriting any previous value for day-of-week.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#daysOfWeek-java.lang.String-">daysOfWeek</a></span>(java.lang.String&nbsp;d)</code>
<div class="block">Configure the day-of-week cron field, overwriting any previous value for day-of-week.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>java.time.ZonedDateTime</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#getNextRunTime-jakarta.enterprise.concurrent.LastExecution-java.time.ZonedDateTime-">getNextRunTime</a></span>(<a href="../../../jakarta/enterprise/concurrent/LastExecution.html" title="interface in jakarta.enterprise.concurrent">LastExecution</a>&nbsp;lastExecutionInfo,
              java.time.ZonedDateTime&nbsp;taskScheduledTime)</code>
<div class="block">Using the cron schedule, and based on the end of the most recent execution
 (or absent that, the initial scheduling time), retrieve the next time
 that the task should run after.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>java.time.ZoneId</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#getZoneId--">getZoneId</a></span>()</code>
<div class="block">Returns the timezone to use for
 <code>ZonedDateTime</code> that is supplied to the
 <a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#getNextRunTime-jakarta.enterprise.concurrent.LastExecution-java.time.ZonedDateTime-"><code>getNextRunTime</code></a> and
 <a href="../../../jakarta/enterprise/concurrent/ZonedTrigger.html#skipRun-jakarta.enterprise.concurrent.LastExecution-java.time.ZonedDateTime-"><code>skipRun</code></a> methods.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#hours-int...-">hours</a></span>(int...&nbsp;h)</code>
<div class="block">Configure the hours cron field, overwriting any previous value for hours.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#hours-java.lang.String-">hours</a></span>(java.lang.String&nbsp;h)</code>
<div class="block">Configure the hours cron field, overwriting any previous value for hours.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#minutes-int...-">minutes</a></span>(int...&nbsp;m)</code>
<div class="block">Configure the minutes cron field, overwriting any previous value for minutes.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#minutes-java.lang.String-">minutes</a></span>(java.lang.String&nbsp;m)</code>
<div class="block">Configure the minutes cron field, overwriting any previous value for minutes.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#months-java.time.Month...-">months</a></span>(java.time.Month...&nbsp;m)</code>
<div class="block">Configure the month cron field, overwriting any previous value for month.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#months-java.lang.String-">months</a></span>(java.lang.String&nbsp;m)</code>
<div class="block">Configure the months cron field, overwriting any previous value for months.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>protected java.time.ZonedDateTime</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#next-java.time.ZonedDateTime-">next</a></span>(java.time.ZonedDateTime&nbsp;from)</code>
<div class="block">Advance to the next date/time according to the cron schedule.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#seconds-int...-">seconds</a></span>(int...&nbsp;s)</code>
<div class="block">Configure the seconds cron field, overwriting any previous value for seconds.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#seconds-java.lang.String-">seconds</a></span>(java.lang.String&nbsp;s)</code>
<div class="block">Configure the seconds cron field, overwriting any previous value for seconds.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#toString--">toString</a></span>()</code>
<div class="block">Readable representation of the CronTrigger, which displays fields in list form
 or with the * character for brevity.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.jakarta.enterprise.concurrent.ZonedTrigger">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;jakarta.enterprise.concurrent.<a href="../../../jakarta/enterprise/concurrent/ZonedTrigger.html" title="interface in jakarta.enterprise.concurrent">ZonedTrigger</a></h3>
<code><a href="../../../jakarta/enterprise/concurrent/ZonedTrigger.html#getNextRunTime-jakarta.enterprise.concurrent.LastExecution-java.util.Date-">getNextRunTime</a>, <a href="../../../jakarta/enterprise/concurrent/ZonedTrigger.html#skipRun-jakarta.enterprise.concurrent.LastExecution-java.util.Date-">skipRun</a>, <a href="../../../jakarta/enterprise/concurrent/ZonedTrigger.html#skipRun-jakarta.enterprise.concurrent.LastExecution-java.time.ZonedDateTime-">skipRun</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="CronTrigger-java.lang.String-java.time.ZoneId-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CronTrigger</h4>
<pre>public&nbsp;CronTrigger(java.lang.String&nbsp;cron,
                   java.time.ZoneId&nbsp;zone)</pre>
<div class="block">Constructor that accepts a cron expression.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cron</code> - cron expression.</dd>
<dd><code>zone</code> - timezone ID to use for <code>ZonedDateTime</code> that is supplied to
        <a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#getNextRunTime-jakarta.enterprise.concurrent.LastExecution-java.time.ZonedDateTime-"><code>getNextRunTime</code></a> and
        <a href="../../../jakarta/enterprise/concurrent/ZonedTrigger.html#skipRun-jakarta.enterprise.concurrent.LastExecution-java.time.ZonedDateTime-"><code>skipRun</code></a> methods.
        Null indicates to use the system default.</dd>
</dl>
</li>
</ul>
<a name="CronTrigger-java.time.ZoneId-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>CronTrigger</h4>
<pre>public&nbsp;CronTrigger(java.time.ZoneId&nbsp;zone)</pre>
<div class="block">Constructor for the fluent configuration pattern.
 Seconds, minutes, and hours default to 0. The remaining fields default to *.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>zone</code> - timezone ID to use for <code>ZonedDateTime</code> that is supplied to
        <a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#getNextRunTime-jakarta.enterprise.concurrent.LastExecution-java.time.ZonedDateTime-"><code>getNextRunTime</code></a> and
        <a href="../../../jakarta/enterprise/concurrent/ZonedTrigger.html#skipRun-jakarta.enterprise.concurrent.LastExecution-java.time.ZonedDateTime-"><code>skipRun</code></a> methods.
        Null indicates to use the system default.</dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="getNextRunTime-jakarta.enterprise.concurrent.LastExecution-java.time.ZonedDateTime-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNextRunTime</h4>
<pre>public&nbsp;java.time.ZonedDateTime&nbsp;getNextRunTime(<a href="../../../jakarta/enterprise/concurrent/LastExecution.html" title="interface in jakarta.enterprise.concurrent">LastExecution</a>&nbsp;lastExecutionInfo,
                                              java.time.ZonedDateTime&nbsp;taskScheduledTime)</pre>
<div class="block">Using the cron schedule, and based on the end of the most recent execution
 (or absent that, the initial scheduling time), retrieve the next time
 that the task should run after.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../jakarta/enterprise/concurrent/ZonedTrigger.html#getNextRunTime-jakarta.enterprise.concurrent.LastExecution-java.time.ZonedDateTime-">getNextRunTime</a></code>&nbsp;in interface&nbsp;<code><a href="../../../jakarta/enterprise/concurrent/ZonedTrigger.html" title="interface in jakarta.enterprise.concurrent">ZonedTrigger</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>lastExecutionInfo</code> - information about the last execution of the task.
                          This value will be null if the task has not yet run.</dd>
<dd><code>taskScheduledTime</code> - the date/time at which the
                          <code>ManagedScheduledExecutorService.schedule</code>
                          method was invoked to schedule the task.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the date/time after which the next execution of the task should start.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.time.DateTimeException</code> - if a next time cannot be determined from the cron expression.</dd>
</dl>
</li>
</ul>
<a name="getZoneId--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getZoneId</h4>
<pre>public final&nbsp;java.time.ZoneId&nbsp;getZoneId()</pre>
<div class="block">Returns the timezone to use for
 <code>ZonedDateTime</code> that is supplied to the
 <a href="../../../jakarta/enterprise/concurrent/CronTrigger.html#getNextRunTime-jakarta.enterprise.concurrent.LastExecution-java.time.ZonedDateTime-"><code>getNextRunTime</code></a> and
 <a href="../../../jakarta/enterprise/concurrent/ZonedTrigger.html#skipRun-jakarta.enterprise.concurrent.LastExecution-java.time.ZonedDateTime-"><code>skipRun</code></a> methods.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../jakarta/enterprise/concurrent/ZonedTrigger.html#getZoneId--">getZoneId</a></code>&nbsp;in interface&nbsp;<code><a href="../../../jakarta/enterprise/concurrent/ZonedTrigger.html" title="interface in jakarta.enterprise.concurrent">ZonedTrigger</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>timezone to use for operations on this trigger.</dd>
</dl>
</li>
</ul>
<a name="daysOfMonth-int...-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>daysOfMonth</h4>
<pre>public&nbsp;<a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a>&nbsp;daysOfMonth(int...&nbsp;d)</pre>
<div class="block">Configure the day-of-month cron field, overwriting any previous value for day-of-month.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>d</code> - one or more day numbers ranging from 1 to 31.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this instance.</dd>
</dl>
</li>
</ul>
<a name="daysOfMonth-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>daysOfMonth</h4>
<pre>public&nbsp;<a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a>&nbsp;daysOfMonth(java.lang.String&nbsp;d)</pre>
<div class="block">Configure the day-of-month cron field, overwriting any previous value for day-of-month.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>d</code> - dayOfMonth cron field. For example, <code>15,L</code>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this instance.</dd>
</dl>
</li>
</ul>
<a name="daysOfWeek-java.time.DayOfWeek...-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>daysOfWeek</h4>
<pre>public&nbsp;<a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a>&nbsp;daysOfWeek(java.time.DayOfWeek...&nbsp;d)</pre>
<div class="block">Configure the day-of-week cron field, overwriting any previous value for day-of-week.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>d</code> - one or more days of the week.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this instance.</dd>
</dl>
</li>
</ul>
<a name="daysOfWeek-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>daysOfWeek</h4>
<pre>public&nbsp;<a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a>&nbsp;daysOfWeek(java.lang.String&nbsp;d)</pre>
<div class="block">Configure the day-of-week cron field, overwriting any previous value for day-of-week.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>d</code> - dayOfWeek cron field. For example, <code>MON-FRI,SAT#L</code>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this instance.</dd>
</dl>
</li>
</ul>
<a name="hours-int...-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hours</h4>
<pre>public&nbsp;<a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a>&nbsp;hours(int...&nbsp;h)</pre>
<div class="block">Configure the hours cron field, overwriting any previous value for hours.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>h</code> - one or more hour values ranging from 0 to 23.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this instance.</dd>
</dl>
</li>
</ul>
<a name="hours-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hours</h4>
<pre>public&nbsp;<a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a>&nbsp;hours(java.lang.String&nbsp;h)</pre>
<div class="block">Configure the hours cron field, overwriting any previous value for hours.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>h</code> - hours cron field. For example, <code>9-17</code> for 9am to 5pm.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this instance.</dd>
</dl>
</li>
</ul>
<a name="minutes-int...-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>minutes</h4>
<pre>public&nbsp;<a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a>&nbsp;minutes(int...&nbsp;m)</pre>
<div class="block">Configure the minutes cron field, overwriting any previous value for minutes.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>m</code> - one or more minute values ranging from 0 to 59.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this instance.</dd>
</dl>
</li>
</ul>
<a name="minutes-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>minutes</h4>
<pre>public&nbsp;<a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a>&nbsp;minutes(java.lang.String&nbsp;m)</pre>
<div class="block">Configure the minutes cron field, overwriting any previous value for minutes.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>m</code> - minutes cron field. For example, <code>5/10</code> for 10 minute intervals
        starting at 5 minutes after the hour (:05, :15, :25, :35, :45, :55).</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this instance.</dd>
</dl>
</li>
</ul>
<a name="months-java.time.Month...-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>months</h4>
<pre>public&nbsp;<a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a>&nbsp;months(java.time.Month...&nbsp;m)</pre>
<div class="block">Configure the month cron field, overwriting any previous value for month.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>m</code> - one or more months.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this instance.</dd>
</dl>
</li>
</ul>
<a name="months-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>months</h4>
<pre>public&nbsp;<a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a>&nbsp;months(java.lang.String&nbsp;m)</pre>
<div class="block">Configure the months cron field, overwriting any previous value for months.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>m</code> - months cron field. For example, <code>SEP-NOV,FEB-MAY</code>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this instance.</dd>
</dl>
</li>
</ul>
<a name="seconds-int...-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>seconds</h4>
<pre>public&nbsp;<a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a>&nbsp;seconds(int...&nbsp;s)</pre>
<div class="block">Configure the seconds cron field, overwriting any previous value for seconds.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>s</code> - one or more seconds values ranging from 0 to 59.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this instance.</dd>
</dl>
</li>
</ul>
<a name="seconds-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>seconds</h4>
<pre>public&nbsp;<a href="../../../jakarta/enterprise/concurrent/CronTrigger.html" title="class in jakarta.enterprise.concurrent">CronTrigger</a>&nbsp;seconds(java.lang.String&nbsp;s)</pre>
<div class="block">Configure the seconds cron field, overwriting any previous value for seconds.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>s</code> - seconds cron field. For example, <code>30</code>.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>this instance.</dd>
</dl>
</li>
</ul>
<a name="toString--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;java.lang.String&nbsp;toString()</pre>
<div class="block">Readable representation of the CronTrigger, which displays fields in list form
 or with the * character for brevity.
 <p>
 For example,
 <pre>CronTrigger@89abcdef seconds 0, minutes 0, hours 9, *, months 3,6,9,12, SAT#2,SAT#4</pre></div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>toString</code>&nbsp;in class&nbsp;<code>java.lang.Object</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>readable representation of the parsed cron expression.</dd>
</dl>
</li>
</ul>
<a name="next-java.time.ZonedDateTime-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>next</h4>
<pre>protected&nbsp;java.time.ZonedDateTime&nbsp;next(java.time.ZonedDateTime&nbsp;from)</pre>
<div class="block">Advance to the next date/time according to the cron schedule.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>from</code> - the date/time from which to compute the next time.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>next date/time according to the cron schedule, or the original time if it matches.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../jakarta/enterprise/concurrent/ContextServiceDefinition.List.html" title="annotation in jakarta.enterprise.concurrent"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../jakarta/enterprise/concurrent/LastExecution.html" title="interface in jakarta.enterprise.concurrent"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?jakarta/enterprise/concurrent/CronTrigger.html" target="_top">Frames</a></li>
<li><a href="CronTrigger.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
