Files
lua-date/docs/index.html
Thijs Schreijer 2be47e4bca release 2.2.1
2023-09-06 20:09:59 +02:00

4126 lines
140 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 25 March 2009), see www.w3.org" />
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
<title>LuaDate v2</title>
<link rel="stylesheet" href="main.css" type="text/css" />
<meta name="generator" content="DocBook XSL Stylesheets V1.70.1" />
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="article" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h2 class="title"><a name="id90891" id="id90891"></a>LuaDate v2.2.1</h2>
</div>
<div>
<h3 class="subtitle"><i>Lua Date and Time module for Lua 5.x.</i></h3>
</div>
<div>
<div class="author">
<h3 class="author"><span class="firstname">Jas</span> <span class=
"surname">Latrix</span></h3>
</div>
</div>
<div>
<p class="copyright">Copyright &copy; 2005-2006 Jas Latrix <code class=
"email">&lt;<a href=
"mailto:jastejada@yahoo.com">jastejada@yahoo.com</a>&gt;</code></p>
<p class="copyright">Copyright &copy; 2013-2021 Thijs
Schreijer</p>
</div>
<div>
<div class="legalnotice">
<a name="id349744" id="id349744"></a>Licensed under <a href="http://opensource.org/licenses/MIT">MIT license</a>.
</div>
</div>
</div>
<hr />
</div>
<div class="toc">
<p><b>Table of Contents</b></p>
<dl>
<dt><span class="section"><a href="#intro">1. Introduction</a></span></dt>
<dt><span class="section"><a href="#Limits">2. Limits</a></span></dt>
<dt><span class="section"><a href="#LocalTimeSupport">3. Local time
support</a></span></dt>
<dt><span class="section"><a href="#ParsableDateValue">4. Parsable date
value</a></span></dt>
<dt><span class="section"><a href="#ParsableMonthValue">5. Parsable month
value</a></span></dt>
<dt><span class="section"><a href="#date">6. date</a></span></dt>
<dd>
<dl>
<dt><span class="section"><a href="#date-id96473">6.1. Function(s) of
date</a></span></dt>
<dt><span class="section"><a href="#date-id95781">6.2. Method(s) of
date</a></span></dt>
</dl>
</dd>
<dt><span class="section"><a href="#dateObject">7. dateObject</a></span></dt>
<dd>
<dl>
<dt><span class="section"><a href="#DaysAndTick">7.1. How Date and Time are
stored in <code class="classname">dateObject</code></a></span></dt>
<dt><span class="section"><a href="#SupportedMetaMethods">7.2. Supported
MetaMethods</a></span></dt>
<dt><span class="section"><a href="#dateObject-id94476">7.3. Method(s) of
dateObject</a></span></dt>
</dl>
</dd>
<dt><span class="section"><a href="#history">8. History</a></span></dt>
<dt><span class="section"><a href="#ackno">9. Acknowledgement</a></span></dt>
</dl>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h2 class="title" style="clear: both"><a name="intro" id=
"intro"></a>1.&nbsp;Introduction</h2>
</div>
</div>
</div><em class="firstterm">LuaDate</em> is a Lua module for date and time
calculation and retrieval using the Gregorian Date system.
<p>To Load the module call <code class="code">local date = require"date"</code> in
your script. Make sure Lua can find the source file <code class=
"filename">date.lua</code>. No global table <code class="classname">date</code>
will be created. Use the metamethod <a href="#date.__call">__call</a> to construct
a <a href="#dateObject">dateObject</a> see example below:</p>
<pre class="programlisting">
local date = require "date"
-- prints all FRIDAY the 13TH dates between year 2000 and 2010
for i = 2000, 2010 do
-- year jan 1
x = date(i, 1, 1)
-- from january to december
for j = 1, 12 do
-- set date to 13, check if friday
if x:setmonth(j, 13):getweekday() == 6 then
print(x:fmt("%A, %B %d %Y"))
end
end
end
--- OUTPUT ---
--&gt; Friday, October 13 2000
--&gt; Friday, April 13 2001
--&gt; Friday, July 13 2001
--&gt; Friday, September 13 2002
--&gt; Friday, December 13 2002
--&gt; Friday, June 13 2003
--&gt; Friday, February 13 2004
--&gt; Friday, August 13 2004
--&gt; Friday, May 13 2005
--&gt; Friday, January 13 2006
--&gt; Friday, October 13 2006
--&gt; Friday, April 13 2007
--&gt; Friday, July 13 2007
--&gt; Friday, June 13 2008
--&gt; Friday, February 13 2009
--&gt; Friday, March 13 2009
--&gt; Friday, November 13 2009
--&gt; Friday, August 13 2010
</pre>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h2 class="title" style="clear: both"><a name="Limits" id=
"Limits"></a>2.&nbsp;Limits</h2>
</div>
</div>
</div>
<div class="itemizedlist">
<ul type="disc">
<li>This module does not recognize leap seconds.</li>
<li>It assumes that a day has exactly <code class="constant">24*60*60</code>
seconds.</li>
<li>The Lua number must be a double C data type</li>
<li>This module supports dates that are greater than <code class="constant">Mon
Jan 01 1000000 BCE 00:00:00</code> and less than <code class="constant">Mon Jan
01 1000001 00:00:00</code>.</li>
<li>see <a href="#LocalTimeSupport">Local time support</a> for local time
limts</li>
</ul>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h2 class="title" style="clear: both"><a name="LocalTimeSupport" id=
"LocalTimeSupport"></a>3.&nbsp;Local time support</h2>
</div>
</div>
</div>This module also supports local time. Local Time is;
<div class="blockquote">
<blockquote class="blockquote">
Local = UTC + bias
</blockquote>
</div>The <span class="emphasis"><em>bias</em></span> is time zone offset plus the
daylight savings if in effect. The <span class="emphasis"><em>bias</em></span> is
retrieve using the Lua function <code class="code">os.date</code> and <code class=
"code">os.time</code>. It assumes that the Lua function <code class=
"code">os.time</code> <span class="bold"><strong>returns the number of seconds
since the start time (called "epoch")</strong></span>. If the time value is outside
the allowable range of times, usually <code class="constant">Jan 01 1970
00:00:00</code> to <code class="constant">Jan 19 2038 03:14:07</code> the bias will
be retrieve using the equivalent year inside the allowable range. Two years are
considered to equivalent if they have the same leap year ness and starting weekday.
<p>The function that needs local time support are <a href="#date.__call" title=
"6.2.1.&nbsp;__call">date(true)</a> (get the current UTC time), <a href=
"#date.__call" title="6.2.1.&nbsp;__call">date(false)</a> (get the current local
time), <a href="#date.__call" title="6.2.1.&nbsp;__call">date(num_time)</a>,
<a href="#dateObject.getbias" title="7.3.10.&nbsp;getbias">dateObj:getbias()</a>,
<a href="#dateObject.fmt" title="7.3.9.&nbsp;fmt">dateObject:fmt(str)</a> (when str
has a '%Z' or '%z'),</p>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h2 class="title" style="clear: both"><a name="ParsableDateValue" id=
"ParsableDateValue"></a>4.&nbsp;Parsable date value</h2>
</div>
</div>
</div>Parsable date value is a lua value that can be converted to a <a href=
"#dateObject">dateObject</a>. This value must be <code class="code">num_time</code>
or <code class="code">tbl_date</code> or <code class="code">str_date</code> or
<code class="code">bool_now</code> argument describe in the <a href=
"#date">date</a> library <a href="#date.__call">__call</a> method.
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h2 class="title" style="clear: both"><a name="ParsableMonthValue" id=
"ParsableMonthValue"></a>5.&nbsp;Parsable month value</h2>
</div>
</div>
</div>If a function needs a month value it must be a string or a number. If the
value is a <code class="constant">string</code>, it must be the name of the month
full or abbreviated. If the value is a <code class="constant">number</code>, that
number must be 1-12 (January-December). see table below
<div class="table">
<a name="monthtable" id="monthtable"></a>
<p class="title"><b>Table&nbsp;1.&nbsp;</b></p>
<div class="table-contents">
<table border="1">
<colgroup>
<col />
<col />
<col />
</colgroup>
<thead>
<tr>
<th>Index</th>
<th>Abbreviation</th>
<th>Full Name</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Jan</td>
<td>January</td>
</tr>
<tr>
<td>2</td>
<td>Feb</td>
<td>February</td>
</tr>
<tr>
<td>3</td>
<td>Mar</td>
<td>March</td>
</tr>
<tr>
<td>4</td>
<td>Apr</td>
<td>April</td>
</tr>
<tr>
<td>5</td>
<td>May</td>
<td>May</td>
</tr>
<tr>
<td>6</td>
<td>Jun</td>
<td>June</td>
</tr>
<tr>
<td>7</td>
<td>Jul</td>
<td>July</td>
</tr>
<tr>
<td>8</td>
<td>Aug</td>
<td>August</td>
</tr>
<tr>
<td>9</td>
<td>Sep</td>
<td>September</td>
</tr>
<tr>
<td>10</td>
<td>Oct</td>
<td>October</td>
</tr>
<tr>
<td>11</td>
<td>Nov</td>
<td>November</td>
</tr>
<tr>
<td>12</td>
<td>Dec</td>
<td>December</td>
</tr>
</tbody>
</table>
</div>
</div><br class="table-break" />
<p>If the value does not represent month, that is equivalent to passing a nil
value.</p>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h2 class="title" style="clear: both"><a name="date" id=
"date"></a>6.&nbsp;date</h2>
</div>
</div>
</div>The date module.
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h3 class="title"><a name="date-id96473" id=
"date-id96473"></a>6.1.&nbsp;Function(s) of date</h3>
</div>
</div>
</div>
<div class="variablelist">
<dl>
<dd><a href="#date.diff">diff</a> | <a href="#date.epoch">epoch</a> |
<a href="#date.isleapyear">isleapyear</a> <sub>3</sub></dd>
</dl>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="date.diff" id=
"date.diff"></a>6.1.1.&nbsp;diff</h4>
</div>
</div>
</div><a class="indexterm" name="id352312" id="id352312"></a>Subtract the date
and time value of two <a href="#dateObject">dateObject</a> and returns the
resulting <a href="#dateObject">dateObject</a>.
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
date.<span class="bold"><strong>diff</strong></span>(<em class=
"parameter"><code>var_date1</code></em>, <em class=
"parameter"><code>var_date2</code></em>)
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Arguments</strong></span></span></dt>
<dd>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"emphasis"><em>var_date1</em></span></span></dt>
<dd>Required. a <a href="#dateObject">dateObject</a> or <a href=
"#ParsableDateValue">parsable date value</a></dd>
<dt><span class="term"><span class=
"emphasis"><em>var_date2</em></span></span></dt>
<dd>Required. a <a href="#dateObject">dateObject</a> or <a href=
"#ParsableDateValue">parsable date value</a></dd>
</dl>
</div>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Returns</strong></span></span></dt>
<dd>
<table class="simplelist" border="0" summary="Simple list">
<tr>
<td><span class="emphasis"><em>Success</em></span></td>
<td>The resulting <a href="#dateObject">dateObject</a></td>
</tr>
<tr>
<td><span class="emphasis"><em>Failure</em></span></td>
<td>nil.</td>
</tr>
</table>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
-- get the days between two dates
d = date.diff("Jan 7 1563", date(1563, 1, 2))
assert(d:spandays()==5)
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="date.epoch" id=
"date.epoch"></a>6.1.2.&nbsp;epoch</h4>
</div>
</div>
</div><a class="indexterm" name="id352466" id="id352466"></a>Returns <a href=
"#dateObject">dateObject</a> whose date and time value is the Operating System
epoch.
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
date.<span class="bold"><strong>epoch</strong></span>()
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Returns</strong></span></span></dt>
<dd>
<table class="simplelist" border="0" summary="Simple list">
<tr>
<td><span class="emphasis"><em>Success</em></span></td>
<td>The resulting <a href="#dateObject">dateObject</a></td>
</tr>
<tr>
<td><span class="emphasis"><em>Failure</em></span></td>
<td>nil.</td>
</tr>
</table>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
assert(date.epoch()==date("jan 1 1970"))
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="date.getcenturyflip" id=
"date.getcenturyflip"></a>6.1.3.&nbsp;getcenturyflip</h4>
</div>
</div>
</div><a class="indexterm" name="id352557" id="id352557"></a>Returns the current
global setting for centuryflip.
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
local centuryflip = date.<span class="bold"><strong>getcenturyflip</strong></span>()
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Arguments</strong></span></span></dt>
<dd>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"emphasis"><em>none</em></span></span></dt>
</dl>
</div>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Returns</strong></span></span></dt>
<dd>The currrent global centuryflip value.</dd>
<dt><span class="term"><span class=
"bold"><strong>Remarks</strong></span></span></dt>
<dd>centuryflip is a global setting and hence should only be set
by an application, never by a library.</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
local centuryflip = date.getcenturyflip()
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="date.isleapyear" id=
"date.isleapyear"></a>6.1.4.&nbsp;isleapyear</h4>
</div>
</div>
</div><a class="indexterm" name="id352556" id="id352556"></a>Check if a number
or <a href="#dateObject">dateObject</a> is a leapyear.
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
date.<span class="bold"><strong>isleapyear</strong></span>(<em class=
"parameter"><code>var_year</code></em>)
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Arguments</strong></span></span></dt>
<dd>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"emphasis"><em>var_year</em></span></span></dt>
<dd>a number or <a href="#dateObject">dateObject</a> or <a href=
"#ParsableDateValue">parsable date value</a></dd>
</dl>
</div>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Returns</strong></span></span></dt>
<dd><code class="classname">true</code> if <code class=
"varname">var_year</code> leap year. <code class="classname">false</code>
if <code class="varname">var_year</code> not leap year.</dd>
<dt><span class="term"><span class=
"bold"><strong>Remarks</strong></span></span></dt>
<dd>A leap year in the Gregorian calendar is defined as a year that is
evenly divisible by four, except if it is divisible by 100; however, years
that are divisible by 400 are leap years.</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
d = date(1776, 1, 1)
assert(date.isleapyear(d))
assert(date.isleapyear(d:getyear()))
assert(date.isleapyear(1776))
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="date.setcenturyflip" id=
"date.setcenturyflip"></a>6.1.5.&nbsp;setcenturyflip</h4>
</div>
</div>
</div><a class="indexterm" name="id352555" id="id352555"></a>Sets the global
value for centuryflip. Century flip determines how 2-digit years are
interpreted when parsing string values. Any value smaller than centuryflip
will be considered 20xx, and values greater or equal will become 19xx.
<div>The default value is 0, so all 2 digit years are considered 19xx.</div>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
date.<span class="bold"><strong>setcenturyflip</strong></span>(<em class=
"parameter"><code>century_flip</code></em>)
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Arguments</strong></span></span></dt>
<dd>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"emphasis"><em>century_flip</em></span></span></dt>
<dd>a number from 0 to 100</a></dd>
</dl>
</div>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Returns</strong></span></span></dt>
<dd>Nothing.</dd>
<dt><span class="term"><span class=
"bold"><strong>Remarks</strong></span></span></dt>
<dd>centuryflip is a global setting and hence should only be set
by an application, never by a library.</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
date.setcenturyflip(0)
assert(date("01-01-00")==date(1900,01,01))
assert(date("01-01-50")==date(1950,01,01))
assert(date("01-01-99")==date(1999,01,01))
date.setcenturyflip(100)
assert(date("01-01-00")==date(2000,01,01))
assert(date("01-01-50")==date(2050,01,01))
assert(date("01-01-99")==date(2099,01,01))
date.setcenturyflip(50)
assert(date("01-01-00")==date(2000,01,01))
assert(date("01-01-49")==date(2049,01,01))
assert(date("01-01-50")==date(1950,01,01))
assert(date("01-01-99")==date(1999,01,01))
</pre>
</dd>
</dl>
</div>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h3 class="title"><a name="date-id95781" id=
"date-id95781"></a>6.2.&nbsp;Method(s) of date</h3>
</div>
</div>
</div>
<div class="variablelist">
<dl>
<dd><a href="#date.__call">__call</a> <sub>1</sub></dd>
</dl>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="date.__call" id=
"date.__call"></a>6.2.1.&nbsp;__call</h4>
</div>
</div>
</div><a class="indexterm" name="id352700" id="id352700"></a> Construct a
<a href="#dateObject">dateObject</a>. It has 3 method of constructing a date
object.
<div class="itemizedlist">
<ul type="disc">
<li>3 or more arguments - <em class="parameter"><code>int_year, var_month,
int_day, num_hour, num_min, num_sec, int_ticks</code></em></li>
<li>1 argument - <em class="parameter"><code>num_time</code></em> or
<em class="parameter"><code>tbl_date</code></em> or <em class=
"parameter"><code>str_date</code></em> or <em class=
"parameter"><code>bool_now</code></em></li>
<li>no argument - same as <code class="varname">date(<code class=
"classname">false</code>)</code></li>
</ul>
</div>This is a metamethod of <a href="#date">date</a>. Remember <code class=
"function">date:__call(...)</code> is the same as <code class=
"function">date(...)</code>.
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
date(<em class="parameter"><code>num_time</code></em>)
</pre>
<pre class="programlisting">
date(<em class="parameter"><code>tbl_date</code></em>)
</pre>
<pre class="programlisting">
date(<em class="parameter"><code>str_date</code></em>)
</pre>
<pre class="programlisting">
date(<em class="parameter"><code>bool_now</code></em>)
</pre>
<pre class="programlisting">
date(<em class="parameter"><code>int_year</code></em>, <em class=
"parameter"><code>var_month</code></em>, <em class=
"parameter"><code>int_day</code></em>, [<em class=
"parameter"><code>num_hour</code></em>], [<em class=
"parameter"><code>num_min</code></em>], [<em class=
"parameter"><code>num_sec</code></em>], [<em class=
"parameter"><code>int_ticks</code></em>])
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Arguments</strong></span></span></dt>
<dd>
<div class="variablelist"></div>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"emphasis"><em>num_time</em></span></span></dt>
<dd>Required <code class="classname">number</code> value. Represents
the number of seconds in Universal Coordinated Time between the
specified value and the System epoch.</dd>
</dl>
</div>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"emphasis"><em>tbl_date</em></span></span></dt>
<dd>
Required <code class="classname">table</code> value. The
constructor will look for the value of this key:
<div class="itemizedlist">
<ul type="disc">
<li><em class="parameter"><code>year</code></em> - an integer,
the full year, for example, 1969. Required if month and day is
given</li>
<li><em class="parameter"><code>month</code></em> - a <a href=
"#ParsableMonthValue">parsable month value</a>. Required if
year and day is given</li>
<li><em class="parameter"><code>day</code></em> - an integer,
the day of month from 1 to 31. Required if year and month is
given</li>
<li><em class="parameter"><code>hour</code></em> - a number,
hours value, from 0 to 23, indicating the number of hours since
midnight. (default = 0)</li>
<li><em class="parameter"><code>min</code></em> - a number,
minutes value, from 0 to 59. (default = 0)</li>
<li><em class="parameter"><code>sec</code></em> - a number,
seconds value, from 0 to 59. (default = 0)</li>
</ul>
</div>Time <em class="parameter"><code>(hour or min or sec or
msec)</code></em> must be supplied if date <em class=
"parameter"><code>(year and month and day)</code></em> is not
given, vice versa.
</dd>
</dl>
</div>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"emphasis"><em>str_date</em></span></span></dt>
<dd>
Required <code class="classname">string</code> value. It must have
number/words representing date and/or time. Use commas and spaces
as delimiters. Strings enclosed by parenthesis is treated as a
comment and is ignored, these parentheses may be nested. The stated
day of the week is ignored whether its correct or not. A string
containing an invalid date is an error. For example, a string
containing two years or two months is an error. Time must be
supplied if date is not given, vice versa.
<p><b>Time Format.&nbsp;</b> Hours, minutes, and seconds are
separated by colons, although all need not be specified. "10:",
"10:11", and "10:11:12" are all valid. If the 24-hour clock is
used, it is an error to specify "PM" for times later than 12 noon.
For example, "23:15 PM" is an error.</p>
<p><b>Time Zone Format.&nbsp;</b> First character is a sign "+"
(east of UTC) or "-" (west of UTC). Hours and minutes offset are
separated by colons:</p>
<pre class="programlisting">
assert( date("Jul 27 2006 03:56:28 +2:00") == date(2006,07,27,1,56,28))
</pre>
<p>Another format is <code class="constant">[sign][number]</code>
If <code class="constant">[number]</code> is less than 24, it is
the offset in hours e.g. "-10" = -10 hours. Otherwise it is the
offset in houndred hours e.g. "+75" = "+115" = +1.25 hours.</p>
<pre class="programlisting">
assert(date("Jul 27 2006 -75 ") == date(2006,07,27,1,15,0))
assert(date("Jul 27 2006 -115") == date(2006,07,27,1,15,0))
assert(date("Jul 27 2006 +10 ") == date(2006,07,26,14,0,0))
assert(date("Jul 27 2006 +2 ") == date(2006,07,26,22,0,0))
</pre>
<p>Standard timezone GMT, UTC, EST, EDT, CST, CDT, MST, MDT, PST,
PDT are supported.</p>
<pre class="programlisting">
assert(date("Jul 27 2006 GMT") == date(2006,07,27,0,0,0))
assert(date("Jul 27 2006 UTC") == date(2006,07,27,0,0,0))
assert(date("Jul 27 2006 EST") == date(2006,07,27,5,0,0))
assert(date("Jul 27 2006 EDT") == date(2006,07,27,4,0,0))
assert(date("Jul 27 2006 CST") == date(2006,07,27,6,0,0))
assert(date("Jul 27 2006 CDT") == date(2006,07,27,5,0,0))
assert(date("Jul 27 2006 MST") == date(2006,07,27,7,0,0))
assert(date("Jul 27 2006 MDT") == date(2006,07,27,6,0,0))
assert(date("Jul 27 2006 PST") == date(2006,07,27,8,0,0))
assert(date("Jul 27 2006 PDT") == date(2006,07,27,7,0,0))
</pre>
<p><b>Date Format.&nbsp;</b> Short dates can use either a "/" or
"-" date separator, but must follow the month/day/year format. 2
digit years are interpreted according to the global
<a href="#date.setcenturyflip">centuryflip setting</a>.</p>
<pre class="programlisting">
assert(date("02-03-04")==date(1904,02,03))
assert(date("12/25/98")==date(1998,12,25))
</pre>
<p>Long dates of the form "July 10 1995" can be given with the
year, month, and day in any order, and the year in 2-digit or
4-digit form. If you use the 2-digit form, the year must be greater
than or equal to 70.</p>
<pre class="programlisting">
assert(date("Feb-03-04")==date(1904,02,03))
assert(date("December 25 1998")==date(1998,12,25))
</pre>
<p>Follow the year with BC or BCE to indicate that the year is
before common era.</p>
<pre class="programlisting">
assert(date("Feb 3 0003 BC")==date(-2,02,03))
assert(date("December 25 0001 BC")==date(0,12,25))
</pre>
<p><b>Supported ISO 8601 Formats.&nbsp;</b></p>
<div class="variablelist">
<dl>
<dt><span class="term"><code class=
"constant">YYYY-MM-DD</code></span></dt>
<dd>
where YYYY is the year, MM is the month of the year, and DD
is the day of the month.
<pre class="programlisting">
assert(date("2000-12-31")==date(2000,12,31))
assert(date(" 20001231 ")==date(2000,12,31)) -- Compact version
</pre>
</dd>
<dt><span class="term"><code class=
"constant">YYYY-DDD</code></span></dt>
<dd>
where YYYY is the year, DDD is the day of the year.
<pre class="programlisting">
assert(date("1995-035")==date(1995,02,04))
assert(date("1995035 ")==date(1995,02,04)) -- Compact version
</pre>
</dd>
<dt><span class="term"><code class=
"constant">YYYY-WDD-D</code></span></dt>
<dd>
where YYYY is the year, DD is the week of the year, D is the
day of the week.
<pre class="programlisting">
assert(date("1997-W01-1")==date(1996,12,30))
assert(date(" 1997W017")==date(1997,01,05)) -- Compact version
</pre>
</dd>
<dt><span class="term"><code class="constant"><span class=
"emphasis"><em>DATE</em></span> HH:MM:SS.SSS</code></span></dt>
<dd>
Where <span class="emphasis"><em>DATE</em></span> is the date
format discuss above, HH is the hour, MM is the miute, SS.SSS
is the seconds (fraction is optional).
<pre class="programlisting">
assert(date("1995-02-04 24:00:51.536")==date(1995,2,5,0,0,51.536))
assert(date("1976-W01-1 12:12:12.123")==date(1975,12,29,12,12,12.123))
assert(date("1995-035 23:59:59.99999")==date(1995,02,04,23,59,59.99999))
-- Compact version separated by latin capital letter T
assert(date(" 19950205T000051.536 ")==date(1995,2,5,0,0,51.536))
assert(date(" 1976W011T121212.123 ")==date(1975,12,29,12,12,12.123))
assert(date(" 1995035T235959.99999 ")==date(1995,02,04,23,59,59.99999))
</pre>
</dd>
<dt><span class="term"><code class="constant"><span class=
"emphasis"><em>DATE</em></span> <span class=
"emphasis"><em>TIME</em></span> +HH:MM</code>, <code class=
"constant"><span class="emphasis"><em>DATE</em></span>
<span class="emphasis"><em>TIME</em></span> -HHMM</code>,
<code class="constant"><span class=
"emphasis"><em>DATE</em></span> <span class=
"emphasis"><em>TIME</em></span> Z</code>,</span></dt>
<dd>
Where <span class="emphasis"><em>DATE</em></span> and
<span class="emphasis"><em>TIME</em></span> is the dateand
time format discuss above. First character is a sign "+"
(east of UTC) or "-" (west of UTC). HH and MM is Hours and
minutes offset. The Z stands for the zero offset.
<pre class="programlisting">
assert(date("1976-W01-1 12:00Z ")==date(1975,12,29,12))
assert(date("1976-W01-1 13:00+01:00")==date(1975,12,29,12))
assert(date("1976-W01-1 0700-0500 ")==date(1975,12,29,12))
</pre>
</dd>
</dl>
</div>
</dd>
</dl>
</div>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"emphasis"><em>bool_now</em></span></span></dt>
<dd>Required <code class="classname">boolean</code> value. if
<code class="varname">bool_now</code> is <code class=
"classname">false</code> it returns the current local date and time.
if <code class="varname">bool_now</code> is <code class=
"classname">true</code> it returns the current UTC date and
time.</dd>
</dl>
</div>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"emphasis"><em>int_year</em></span></span></dt>
<dd>Required <code class="classname">interger</code> value. The year
value.</dd>
<dt><span class="term"><span class=
"emphasis"><em>var_month</em></span></span></dt>
<dd>Required. A <a href="#ParsableMonthValue">parsable month
value</a>.</dd>
<dt><span class="term"><span class=
"emphasis"><em>int_day</em></span></span></dt>
<dd>Required <code class="classname">interger</code> value. The day
of month.</dd>
<dt><span class="term"><span class=
"emphasis"><em>num_hour</em></span></span></dt>
<dd>Optional <code class="classname">number</code> value. Equal to
the hours value. The default value is <code class=
"literal">0</code></dd>
<dt><span class="term"><span class=
"emphasis"><em>num_min</em></span></span></dt>
<dd>Optional <code class="classname">number</code> value. Equal to
the minutes value. The default value is <code class=
"literal">0</code></dd>
<dt><span class="term"><span class=
"emphasis"><em>num_sec</em></span></span></dt>
<dd>Optional <code class="classname">number</code> value. Equal to
the seconds value. The default value is <code class=
"literal">0</code></dd>
<dt><span class="term"><span class=
"emphasis"><em>int_ticks</em></span></span></dt>
<dd>Optional <code class="classname">interger</code> value. Equal to
the ticks value. The default value is <code class=
"literal">0</code></dd>
</dl>
</div>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Returns</strong></span></span></dt>
<dd>
<table class="simplelist" border="0" summary="Simple list">
<tr>
<td><span class="emphasis"><em>Success</em></span></td>
<td>the new <a href="#dateObject">dateObject</a></td>
</tr>
<tr>
<td><span class="emphasis"><em>Failure</em></span></td>
<td>nil.</td>
</tr>
</table>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
a = date(2006, 8, 13) assert(a == date("Sun Aug 13 2006"))
b = date("Jun 13 1999") assert(b == date(1999, 6, 13))
c = date(1234483200) assert(c == date("Feb 13 2009"))
d = date({year=2009, month=11, day=13, min=6})
assert(d == date("Nov 13 2009 00:06:00"))
e = date() assert(e)
</pre>
</dd>
</dl>
</div>
</div>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h2 class="title" style="clear: both"><a name="dateObject" id=
"dateObject"></a>7.&nbsp;dateObject</h2>
</div>
</div>
</div><em class="firstterm">dateObject</em> is a table containing date and time
value. It has a metatable for manipulation and retrieval of dates and times. Use
the <a href="#date.__call">__call</a> method of <a href="#date">date</a> to
construct a dateObject.
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h3 class="title"><a name="DaysAndTick" id="DaysAndTick"></a>7.1.&nbsp;How
Date and Time are stored in <code class="classname">dateObject</code></h3>
</div>
</div>
</div>Time is stored in <code class="classname">dateObject</code> as Ticks or Day
Fraction. Date is stored in <code class="classname">dateObject</code> as Day
Number. Ticks is time unit per seconds. For example, if the tick unit is 1000000.
0.25 seconds is equivalent to 250000 ticks (0.25*1000000). Day number, is the
number days since the epoch, which is January 1, 0001 AD. Example.
<pre class="programlisting">
dobj = date("15:49:59.3669")
</pre>If the tick unit is 1000000, <code class="varname">dobj</code> store this time as
56999366900 ticks and 0 days.
<pre class="programlisting">
((((15*60)+49)*60)+59.3669)*1000000 == 56999366900
</pre>Example Date and Time:
<pre class="programlisting">
dobj = date("Jan-5-0001 10:30:15")
</pre>If the tick unit is 1000000, <code class="varname">dobj</code> store this date and
time as 37815000000 ticks and 4 days. 4 days becuase:
<table id="id354830">
<tr>
<th>Day#</th>
<th>Date</th>
</tr>
<tr>
<td>0</td>
<td>Jan 1 0001</td>
</tr>
<tr>
<td>1</td>
<td>Jan 2 0001</td>
</tr>
<tr>
<td>2</td>
<td>Jan 3 0001</td>
</tr>
<tr>
<td>3</td>
<td>Jan 4 0001</td>
</tr>
<tr>
<td><span class="bold"><strong>4</strong></span></td>
<td><span class="bold"><strong>Jan 5 0001</strong></span></td>
</tr>
<tr>
<td>5</td>
<td>Jan 6 0001</td>
</tr>
<tr>
<td>...</td>
<td>...</td>
</tr>
</table>
<p>The default tick unit is 1000000 (micro-second-ticks)</p>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h3 class="title"><a name="SupportedMetaMethods" id=
"SupportedMetaMethods"></a>7.2.&nbsp;Supported MetaMethods</h3>
</div>
</div>
</div>
<div class="variablelist">
<dl>
<dt><span class="term">The <code class="varname">a &lt; b</code>
operation.</span></dt>
<dd>Returns <code class="constant">true</code> if date value of a is smaller/older
than date value of b. <code class="varname">a &gt; b</code> is equivalent to
<code class="varname">b &lt; a</code>.</dd>
<dt><span class="term">The <code class="varname">a &lt;= b</code>
operation.</span></dt>
<dd>Returns <code class="constant">true</code> if date value of a is smaller/older
than or equal to the date value of b. <code class="varname">a &gt;= b</code>
is equivalent to <code class="varname">b &lt;= a</code>.</dd>
<dt><span class="term">The <code class="varname">a == b</code>
operation.</span></dt>
<dd>Returns <code class="constant">true</code> if date value of a is equal
equal to the date value of b. <code class="varname">a ~= b</code> is
equivalent to <code class="varname">not (a == b)</code>.</dd>
<dt><span class="term">The <code class="varname">a .. b</code>
operation.</span></dt>
<dd>Equivalent to <code class="varname">tostring(a) ..
tostring(b)</code>.</dd>
<dt><span class="term">The <code class="varname">a - b</code>
operation.</span></dt>
<dd>Subtract the date and time value of <code class="varname">b</code> from
date and time value of <code class="varname">a</code>.</dd>
<dt><span class="term">The <code class="varname">a + b</code>
operation.</span></dt>
<dd>Add the date and time value of <code class="varname">b</code> to date and
time value of <code class="varname">a</code>.</dd>
</dl>
</div><code class="varname">a</code> and <code class="varname">b</code> must be a
parsable date value or an error rises
<pre class="programlisting">
a = date(1521,5,2)
b = a:copy():addseconds(0.001)
assert((a - b):spanseconds() == -0.001)
assert((a + b) == (b + a))
assert(a == (b - date("00:00:00.001")) )
assert(b == (a + date("00:00:00.001")) )
b:addseconds(-0.01)
assert(a &gt; b and b &lt; a)
assert(a &gt;= b and b &lt;= a)
assert(a ~= b and (not(a == b)))
a = b:copy()
assert(not (a &gt; b and b &lt; a))
assert(a &gt;= b and b &lt;= a)
assert(a == b and (not(a ~= b)))
assert((a .. 565369) == (b .. 565369))
assert((a .. "????") == (b .. "????"))
</pre>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h3 class="title"><a name="dateObject-id94476" id=
"dateObject-id94476"></a>7.3.&nbsp;Method(s) of dateObject</h3>
</div>
</div>
</div>
<div class="variablelist">
<dl>
<dd><a href="#dateObject.adddays">adddays</a> | <a href=
"#dateObject.addhours">addhours</a> | <a href=
"#dateObject.addminutes">addminutes</a> | <a href=
"#dateObject.addmonths">addmonths</a> | <a href=
"#dateObject.addseconds">addseconds</a> | <a href=
"#dateObject.addticks">addticks</a> | <a href=
"#dateObject.addyears">addyears</a> | <a href="#dateObject.copy">copy</a> |
<a href="#dateObject.fmt">fmt</a> | <a href="#dateObject.getbias">getbias</a>
| <a href="#dateObject.getclockhour">getclockhour</a> | <a href=
"#dateObject.getdate">getdate</a> | <a href="#dateObject.getday">getday</a> |
<a href="#dateObject.getfracsec">getfracsec</a> | <a href=
"#dateObject.gethours">gethours</a> | <a href=
"#dateObject.getisoweekday">getisoweekday</a> | <a href=
"#dateObject.getisoweeknumber">getisoweeknumber</a> | <a href=
"#dateObject.getisoyear">getisoyear</a> | <a href=
"#dateObject.getminutes">getminutes</a> | <a href=
"#dateObject.getmonth">getmonth</a> | <a href=
"#dateObject.getseconds">getseconds</a> | <a href=
"#dateObject.getticks">getticks</a> | <a href=
"#dateObject.gettime">gettime</a> | <a href=
"#dateObject.getweekday">getweekday</a> | <a href=
"#dateObject.getweeknumber">getweeknumber</a> | <a href=
"#dateObject.getyear">getyear</a> | <a href=
"#dateObject.getyearday">getyearday</a> | <a href=
"#dateObject.setday">setday</a> | <a href="#dateObject.sethours">sethours</a>
| <a href="#dateObject.setisoweekday">setisoweekday</a> | <a href=
"#dateObject.setisoweeknumber">setisoweeknumber</a> | <a href=
"#dateObject.setisoyear">setisoyear</a> | <a href=
"#dateObject.setminutes">setminutes</a> | <a href=
"#dateObject.setmonth">setmonth</a> | <a href=
"#dateObject.setseconds">setseconds</a> | <a href=
"#dateObject.setticks">setticks</a> | <a href=
"#dateObject.setyear">setyear</a> | <a href=
"#dateObject.spandays">spandays</a> | <a href=
"#dateObject.spanhours">spanhours</a> | <a href=
"#dateObject.spanminutes">spanminutes</a> | <a href=
"#dateObject.spanseconds">spanseconds</a> | <a href=
"#dateObject.spanticks">spanticks</a> | <a href=
"#dateObject.tolocal">tolocal</a> | <a href="#dateObject.toutc">toutc</a>
<sub>44</sub></dd>
</dl>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.adddays" id=
"dateObject.adddays"></a>7.3.1.&nbsp;adddays</h4>
</div>
</div>
</div><a class="indexterm" name="id355399" id="id355399"></a>Add days in
<a href="#dateObject">dateObject</a>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>adddays</strong></span>(<em class=
"parameter"><code>int_days</code></em>)
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Arguments</strong></span></span></dt>
<dd>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"emphasis"><em>int_days</em></span></span></dt>
<dd>Required <code class="classname">integer</code> value. Days to
add.</dd>
</dl>
</div>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Returns</strong></span></span></dt>
<dd>
<table class="simplelist" border="0" summary="Simple list">
<tr>
<td><span class="emphasis"><em>Success</em></span></td>
<td>reference to the adjusted <a href=
"#dateObject">dateObject</a></td>
</tr>
<tr>
<td><span class="emphasis"><em>Failure</em></span></td>
<td>nil.</td>
</tr>
</table>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Remarks</strong></span></span></dt>
<dd>If the value is negative, the adjusted dateObject will be earlier.</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
a = date(2000,12,30)
b = date(a):adddays(3)
c = date.diff(b,a)
assert(c:spandays() == 3)
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.addhours" id=
"dateObject.addhours"></a>7.3.2.&nbsp;addhours</h4>
</div>
</div>
</div><a class="indexterm" name="id355527" id="id355527"></a>Add hours in
<a href="#dateObject">dateObject</a>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>addhours</strong></span>(<em class=
"parameter"><code>num_hours</code></em>)
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Arguments</strong></span></span></dt>
<dd>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"emphasis"><em>num_hours</em></span></span></dt>
<dd>Required <code class="classname">number</code> value. Hours to
add.</dd>
</dl>
</div>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Returns</strong></span></span></dt>
<dd>
<table class="simplelist" border="0" summary="Simple list">
<tr>
<td><span class="emphasis"><em>Success</em></span></td>
<td>reference to the adjusted <a href=
"#dateObject">dateObject</a></td>
</tr>
<tr>
<td><span class="emphasis"><em>Failure</em></span></td>
<td>nil.</td>
</tr>
</table>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Remarks</strong></span></span></dt>
<dd>If the value is negative, the adjusted dateObject will be earlier.</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
a = date(2000,12,30)
b = date(a):addhours(3)
c = date.diff(b,a)
assert(c:spanhours() == 3)
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.addminutes" id=
"dateObject.addminutes"></a>7.3.3.&nbsp;addminutes</h4>
</div>
</div>
</div><a class="indexterm" name="id355655" id="id355655"></a>Add minutes in
<a href="#dateObject">dateObject</a>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>addminutes</strong></span>(<em class=
"parameter"><code>num_minutes</code></em>)
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Arguments</strong></span></span></dt>
<dd>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"emphasis"><em>num_minutes</em></span></span></dt>
<dd>Required <code class="classname">number</code> value. Minutes to
add.</dd>
</dl>
</div>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Returns</strong></span></span></dt>
<dd>
<table class="simplelist" border="0" summary="Simple list">
<tr>
<td><span class="emphasis"><em>Success</em></span></td>
<td>reference to the adjusted <a href=
"#dateObject">dateObject</a></td>
</tr>
<tr>
<td><span class="emphasis"><em>Failure</em></span></td>
<td>nil.</td>
</tr>
</table>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Remarks</strong></span></span></dt>
<dd>If the value is negative, the adjusted dateObject will be earlier.</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
a = date(2000,12,30)
b = date(a):addminutes(3)
c = date.diff(b,a)
assert(c:spanminutes() == 3)
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.addmonths" id=
"dateObject.addmonths"></a>7.3.4.&nbsp;addmonths</h4>
</div>
</div>
</div><a class="indexterm" name="id355783" id="id355783"></a>Add months in
<a href="#dateObject">dateObject</a>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>addmonths</strong></span>(<em class=
"parameter"><code>int_months</code></em>)
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Arguments</strong></span></span></dt>
<dd>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"emphasis"><em>int_months</em></span></span></dt>
<dd>Required <code class="classname">integer</code> value. Months to
add.</dd>
</dl>
</div>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Returns</strong></span></span></dt>
<dd>
<table class="simplelist" border="0" summary="Simple list">
<tr>
<td><span class="emphasis"><em>Success</em></span></td>
<td>reference to the adjusted <a href=
"#dateObject">dateObject</a></td>
</tr>
<tr>
<td><span class="emphasis"><em>Failure</em></span></td>
<td>nil.</td>
</tr>
</table>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Remarks</strong></span></span></dt>
<dd>If the value is negative, the adjusted dateObject will be earlier.</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
a = date(2000,12,28):addmonths(3)
assert(a:getmonth() == 3)
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.addseconds" id=
"dateObject.addseconds"></a>7.3.5.&nbsp;addseconds</h4>
</div>
</div>
</div><a class="indexterm" name="id355910" id="id355910"></a>Add seconds in
<a href="#dateObject">dateObject</a>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>addseconds</strong></span>(<em class=
"parameter"><code>num_sec</code></em>)
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Arguments</strong></span></span></dt>
<dd>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"emphasis"><em>num_sec</em></span></span></dt>
<dd>Required <code class="classname">number</code> value. Seconds to
add.</dd>
</dl>
</div>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Returns</strong></span></span></dt>
<dd>
<table class="simplelist" border="0" summary="Simple list">
<tr>
<td><span class="emphasis"><em>Success</em></span></td>
<td>reference to the adjusted <a href=
"#dateObject">dateObject</a></td>
</tr>
<tr>
<td><span class="emphasis"><em>Failure</em></span></td>
<td>nil.</td>
</tr>
</table>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Remarks</strong></span></span></dt>
<dd>If the value is negative, the adjusted dateObject will be earlier.</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
a = date(2000,12,30)
b = date(a):addseconds(3)
c = date.diff(b,a)
assert(c:spanseconds() == 3)
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.addticks" id=
"dateObject.addticks"></a>7.3.6.&nbsp;addticks</h4>
</div>
</div>
</div><a class="indexterm" name="id356038" id="id356038"></a>Add ticks in
<a href="#dateObject">dateObject</a>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>addticks</strong></span>(<em class=
"parameter"><code>num_ticks</code></em>)
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Arguments</strong></span></span></dt>
<dd>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"emphasis"><em>num_ticks</em></span></span></dt>
<dd>Required <code class="classname">number</code> value. Ticks to
add.</dd>
</dl>
</div>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Returns</strong></span></span></dt>
<dd>
<table class="simplelist" border="0" summary="Simple list">
<tr>
<td><span class="emphasis"><em>Success</em></span></td>
<td>reference to the adjusted <a href=
"#dateObject">dateObject</a></td>
</tr>
<tr>
<td><span class="emphasis"><em>Failure</em></span></td>
<td>nil.</td>
</tr>
</table>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Remarks</strong></span></span></dt>
<dd>If the value is negative, the adjusted dateObject will be earlier. For
discussion about ticks see <a href="#DaysAndTick" title=
"7.1.&nbsp;How Date and Time are stored in dateObject">Section&nbsp;7.1,
&ldquo;How Date and Time are stored in <code class=
"classname">dateObject</code>&rdquo;</a>.</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
a = date(2000,12,30)
b = date(a):addticks(3)
c = date.diff(b,a)
assert(c:spanticks() == 3)
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.addyears" id=
"dateObject.addyears"></a>7.3.7.&nbsp;addyears</h4>
</div>
</div>
</div><a class="indexterm" name="id356171" id="id356171"></a>Add years in
<a href="#dateObject">dateObject</a>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>addyears</strong></span>(<em class=
"parameter"><code>int_years</code></em>)
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Arguments</strong></span></span></dt>
<dd>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"emphasis"><em>int_years</em></span></span></dt>
<dd>Required <code class="classname">integer</code> value. Years to
add.</dd>
</dl>
</div>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Returns</strong></span></span></dt>
<dd>
<table class="simplelist" border="0" summary="Simple list">
<tr>
<td><span class="emphasis"><em>Success</em></span></td>
<td>reference to the adjusted <a href=
"#dateObject">dateObject</a></td>
</tr>
<tr>
<td><span class="emphasis"><em>Failure</em></span></td>
<td>nil.</td>
</tr>
</table>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Remarks</strong></span></span></dt>
<dd>If the value is negative, the adjusted dateObject will be earlier.</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
a = date(2000,12,30):addyears(3)
assert(a:getyear() == (2000+3))
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.copy" id=
"dateObject.copy"></a>7.3.8.&nbsp;copy</h4>
</div>
</div>
</div><a class="indexterm" name="id356299" id="id356299"></a>Returns a new date
object having the same date and time value of <a href=
"#dateObject">dateObject</a>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>copy</strong></span>()
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
a = date(2000,12,30)
b = a:copy()
assert(a==b)
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.fmt" id=
"dateObject.fmt"></a>7.3.9.&nbsp;fmt</h4>
</div>
</div>
</div><a class="indexterm" name="id356352" id="id356352"></a>Returns a
formatted version of <a href="#dateObject">dateObject</a>.
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>fmt</strong></span>(<em class=
"parameter"><code>str_code</code></em>)
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Arguments</strong></span></span></dt>
<dd>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"emphasis"><em>str_code</em></span></span></dt>
<dd>
<code class="classname">string</code> value. The format string
follows the same rules as the strftime standard C function.
<div class="table">
<a name="fmtspec" id="fmtspec"></a>
<p class="title"><b>Table&nbsp;3.&nbsp;Format Spec</b></p>
<div class="table-contents">
<table summary="Format Spec" border="1">
<colgroup>
<col />
<col />
</colgroup>
<thead>
<tr>
<th>Spec</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>'%a'</td>
<td>Abbreviated weekday name (Sun)</td>
</tr>
<tr>
<td>'%A'</td>
<td>Full weekday name (Sunday)</td>
</tr>
<tr>
<td>'%b'</td>
<td>Abbreviated month name (Dec)</td>
</tr>
<tr>
<td>'%B'</td>
<td>Full month name (December)</td>
</tr>
<tr>
<td>'%C'</td>
<td>Year/100 (19, 20, 30)</td>
</tr>
<tr>
<td>'%d'</td>
<td>The day of the month as a number (range 1 - 31)</td>
</tr>
<tr>
<td>'%g'</td>
<td>year for ISO 8601 week, from 00 (79)</td>
</tr>
<tr>
<td>'%G'</td>
<td>year for ISO 8601 week, from 0000 (1979)</td>
</tr>
<tr>
<td>'%h'</td>
<td>same as %b</td>
</tr>
<tr>
<td>'%H'</td>
<td>hour of the 24-hour day, from 00 (06)</td>
</tr>
<tr>
<td>'%I'</td>
<td>The hour as a number using a 12-hour clock (01 -
12)</td>
</tr>
<tr>
<td>'%j'</td>
<td>The day of the year as a number (001 - 366)</td>
</tr>
<tr>
<td>'%m'</td>
<td>Month of the year, from 01 to 12</td>
</tr>
<tr>
<td>'%M'</td>
<td>Minutes after the hour 55</td>
</tr>
<tr>
<td>'%p'</td>
<td>AM/PM indicator (AM)</td>
</tr>
<tr>
<td>'%S'</td>
<td>The second as a number (59, 20 , 01)</td>
</tr>
<tr>
<td>'%u'</td>
<td>ISO 8601 day of the week, to 7 for Sunday (7, 1)</td>
</tr>
<tr>
<td>'%U'</td>
<td>Sunday week of the year, from 00 (48)</td>
</tr>
<tr>
<td>'%V'</td>
<td>ISO 8601 week of the year, from 01 (48)</td>
</tr>
<tr>
<td>'%w'</td>
<td>The day of the week as a decimal, Sunday being 0</td>
</tr>
<tr>
<td>'%W'</td>
<td>Monday week of the year, from 00 (48)</td>
</tr>
<tr>
<td>'%y'</td>
<td>The year as a number without a century (range 00 to
99)</td>
</tr>
<tr>
<td>'%Y'</td>
<td>Year with century (2000, 1914, 0325, 0001)</td>
</tr>
<tr>
<td>'%z'</td>
<td>Time zone offset, the date object is assumed local
time (+1000, -0230)</td>
</tr>
<tr>
<td>'%Z'</td>
<td>Time zone name, the date object is assumed local
time</td>
</tr>
<tr>
<td>'%\b'</td>
<td>Year, if year is in BCE, prints the BCE Year
representation, otherwise result is similar to "%Y" (1
BCE, 40 BCE) #</td>
</tr>
<tr>
<td>'%\f'</td>
<td>Seconds including fraction (59.998, 01.123) #</td>
</tr>
<tr>
<td>'%%'</td>
<td>percent character %</td>
</tr>
<tr>
<td>'%r'</td>
<td>12-hour time, from 01:00:00 AM (06:55:15 AM); same as
"%I:%M:%S %p"</td>
</tr>
<tr>
<td>'%R'</td>
<td>hour:minute, from 01:00 (06:55); same as "%I:%M"</td>
</tr>
<tr>
<td>'%T'</td>
<td>24-hour time, from 00:00:00 (06:55:15); same as
"%H:%M:%S"</td>
</tr>
<tr>
<td>'%D'</td>
<td>month/day/year from 01/01/00 (12/02/79); same as
"%m/%d/%y"</td>
</tr>
<tr>
<td>'%F'</td>
<td>year-month-day (1979-12-02); same as "%Y-%m-%d"</td>
</tr>
<tr>
<td>'%c'</td>
<td>The preferred date and time representation; same as
"%x %X"</td>
</tr>
<tr>
<td>'%x'</td>
<td>The preferred date representation, same as "%a %b %d
%\b"</td>
</tr>
<tr>
<td>'%X'</td>
<td>The preferred time representation, same as
"%H:%M:%\f"</td>
</tr>
<tr>
<td>'${iso}'</td>
<td>Iso format, same as "%Y-%m-%dT%T"</td>
</tr>
<tr>
<td>'${http}'</td>
<td>http format, same as "%a, %d %b %Y %T GMT"</td>
</tr>
<tr>
<td>'${ctime}'</td>
<td>ctime format, same as "%a %b %d %T GMT %Y"</td>
</tr>
<tr>
<td>'${rfc850}'</td>
<td>RFC850 format, same as "%A, %d-%b-%y %T GMT"</td>
</tr>
<tr>
<td>'${rfc1123}'</td>
<td>RFC1123 format, same as "%a, %d %b %Y %T GMT"</td>
</tr>
<tr>
<td>'${asctime}'</td>
<td>asctime format, same as "%a %b %d %T %Y"</td>
</tr>
</tbody>
</table>
</div>
</div><br class="table-break" />
</dd>
</dl>
</div>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Remarks</strong></span></span></dt>
<dd>Only English names are supported</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
d = date(1582,10,5)
assert(d:fmt('%D') == d:fmt("%m/%d/%y")) -- month/day/year from 01/01/00 (12/02/79)
assert(d:fmt('%F') == d:fmt("%Y-%m-%d")) -- year-month-day (1979-12-02)
assert(d:fmt('%h') == d:fmt("%b")) -- same as %b (Dec)
assert(d:fmt('%r') == d:fmt("%I:%M:%S %p")) -- 12-hour time, from 01:00:00 AM (06:55:15 AM)
assert(d:fmt('%T') == d:fmt("%H:%M:%S")) -- 24-hour time, from 00:00:00 (06:55:15)
assert(d:fmt('%a %A %b %B') == "Tue Tuesday Oct October")
assert(d:fmt('%C %d') == "15 05", d:fmt('%C %d'))
print(d:fmt[[
${iso} -- iso
${http} -- http
${ctime} -- ctime
${rfc850} -- rfc850
${rfc1123} -- rfc1123
${asctime} -- asctime
]])
</pre>
</dd>
<dt><span class="term"><span class="bold"><strong>Example</strong></span>
(Prints the current date and time)</span></dt>
<dd>
<pre class="programlisting">
-- Prints the current date and time, including time zone
d = date(false);
print(d:fmt("Today is %c GMT%z"))
--&gt; "Today is Tue Oct 31 2000 01:58:14 GMT-0330"
-- Prints the current date and time in ISO format including time zone
d = date(false);
print(d:fmt("Today is ${iso}%z"))
--&gt; "Today is 2000-10-31T01:58:14-0330"
-- Prints the current date and time in ISO format, indicates UTC
d = date(true);
print(d:fmt("Today is ${iso}Z"))
--&gt; "Today is 2000-10-31T05:28:14Z"
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.getbias" id=
"dateObject.getbias"></a>7.3.10.&nbsp;getbias</h4>
</div>
</div>
</div><a class="indexterm" name="id356866" id="id356866"></a> Assuming <a href=
"#dateObject">dateObject</a> is a local time. Returns the time zone offset.
Returns nil on failure.
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>getbias</strong></span>()
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
a = date(2^16)
print(a:getbias())
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.getclockhour" id=
"dateObject.getclockhour"></a>7.3.11.&nbsp;getclockhour</h4>
</div>
</div>
</div><a class="indexterm" name="id356921" id="id356921"></a>Returns the hours
value using a 12-hour clock in a <a href="#dateObject">dateObject</a>.
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>getclockhour</strong></span>()
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
a = date("10:59:59 pm")
assert(a:getclockhour()==10)
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.getdate" id=
"dateObject.getdate"></a>7.3.12.&nbsp;getdate</h4>
</div>
</div>
</div><a class="indexterm" name="id356976" id="id356976"></a>Returns the
<em class="parameter"><code>year</code></em>, <em class=
"parameter"><code>month</code></em>, and <em class=
"parameter"><code>day</code></em> value in a <a href=
"#dateObject">dateObject</a>.
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>getdate</strong></span>()
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
a = date(1970, 1, 1)
y, m, d = a:getdate()
assert(y == 1970 and m == 1 and d == 1)
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.getday" id=
"dateObject.getday"></a>7.3.13.&nbsp;getday</h4>
</div>
</div>
</div><a class="indexterm" name="id357044" id="id357044"></a>Returns the day of
month value in a <a href="#dateObject">dateObject</a>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>getday</strong></span>()
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
d = date(1966, 'sep', 6)
assert(d:getday() == 6)
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.getfracsec" id=
"dateObject.getfracsec"></a>7.3.14.&nbsp;getfracsec</h4>
</div>
</div>
</div><a class="indexterm" name="id357097" id="id357097"></a>Returns the
seconds after the minute (fractional) value in a <a href=
"#dateObject">dateObject</a>.
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>getfracsec</strong></span>()
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
d = date("Wed Apr 04 2181 11:51:06.996 UTC")
assert(d:getfracsec() == 6.996)
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.gethours" id=
"dateObject.gethours"></a>7.3.15.&nbsp;gethours</h4>
</div>
</div>
</div><a class="indexterm" name="id357152" id="id357152"></a>Returns the hours
value in a <a href="#dateObject">dateObject</a>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>gethours</strong></span>()
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
d = date("Wed Apr 04 2181 11:51:06 UTC")
assert(d:gethours() == 11)
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.getisoweekday" id=
"dateObject.getisoweekday"></a>7.3.16.&nbsp;getisoweekday</h4>
</div>
</div>
</div><a class="indexterm" name="id357205" id="id357205"></a>Returns the day of
week (sunday=7, monday=1, ...saturday=6) in a <a href=
"#dateObject">dateObject</a>.
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>getisoweekday</strong></span>()
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
d = date(1970, 1, 1)
assert(d:getisoweekday() == 4)
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.getisoweeknumber" id=
"dateObject.getisoweeknumber"></a>7.3.17.&nbsp;getisoweeknumber</h4>
</div>
</div>
</div><a class="indexterm" name="id357261" id="id357261"></a>Returns the ISO
8601 week number (01 to 53) in a <a href="#dateObject">dateObject</a>. Using
the Year-WeekOfYear-DayOfWeek date system
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>getisoweeknumber</strong></span>()
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
d = date(1975, 12, 29)
assert(d:getisoweeknumber() == 1)
assert(d:getisoyear() == 1976)
assert(d:getisoweekday() == 1)
d = date(1977, 1, 2)
assert(d:getisoweeknumber() == 53)
assert(d:getisoyear() == 1976)
assert(d:getisoweekday() == 7)
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.getisoyear" id=
"dateObject.getisoyear"></a>7.3.18.&nbsp;getisoyear</h4>
</div>
</div>
</div><a class="indexterm" name="id357320" id="id357320"></a>Returns the ISO
8601 year in a <a href="#dateObject">dateObject</a>. Using the
Year-WeekOfYear-DayOfWeek date system
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>getisoyear</strong></span>()
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
d = date(1996, 12, 30)
assert(d:getisoyear() == 1997)
d = date(1997, 01, 05)
assert(d:getisoyear() == 1997)
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.getminutes" id=
"dateObject.getminutes"></a>7.3.19.&nbsp;getminutes</h4>
</div>
</div>
</div><a class="indexterm" name="id357377" id="id357377"></a>Returns the
minutes after the hour value in a <a href="#dateObject">dateObject</a>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>getminutes</strong></span>()
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
d = date("Wed Apr 04 2181 11:51:06 UTC")
assert(d:getminutes() == 51)
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.getmonth" id=
"dateObject.getmonth"></a>7.3.20.&nbsp;getmonth</h4>
</div>
</div>
</div><a class="indexterm" name="id357430" id="id357430"></a>Returns the month
value in a <a href="#dateObject">dateObject</a>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>getmonth</strong></span>()
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
d = date(1966, 'sep', 6)
assert(d:getmonth() == 9)
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.getseconds" id=
"dateObject.getseconds"></a>7.3.21.&nbsp;getseconds</h4>
</div>
</div>
</div><a class="indexterm" name="id357483" id="id357483"></a>Returns the
seconds after the minute value in a <a href="#dateObject">dateObject</a>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>getseconds</strong></span>()
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
d = date("Wed Apr 04 2181 11:51:06.123 UTC")
assert(d:getseconds() == 6)
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.getticks" id=
"dateObject.getticks"></a>7.3.22.&nbsp;getticks</h4>
</div>
</div>
</div><a class="indexterm" name="id357537" id="id357537"></a>Returns the ticks
after the seconds value in a <a href="#dateObject">dateObject</a>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>getticks</strong></span>()
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Remarks</strong></span></span></dt>
<dd>For discussion about ticks see <a href="#DaysAndTick" title=
"7.1.&nbsp;How Date and Time are stored in dateObject">Section&nbsp;7.1,
&ldquo;How Date and Time are stored in <code class=
"classname">dateObject</code>&rdquo;</a>.</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
d = date("Wed Apr 04 2181 11:51:06.123 UTC")
assert(d:getticks() == 123000)
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.gettime" id=
"dateObject.gettime"></a>7.3.23.&nbsp;gettime</h4>
</div>
</div>
</div><a class="indexterm" name="id357607" id="id357607"></a>Returns the
<em class="parameter"><code>hours</code></em>, <em class=
"parameter"><code>minutes</code></em>, <em class=
"parameter"><code>seconds</code></em> and <em class=
"parameter"><code>ticks</code></em> value in a <a href=
"#dateObject">dateObject</a>.
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>gettime</strong></span>()
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
a = date({hour=5,sec=.5,min=59})
h, m, s, t = a:gettime()
assert(t == 500000 and s == 0 and m == 59 and h == 5, tostring(a))
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.getweekday" id=
"dateObject.getweekday"></a>7.3.24.&nbsp;getweekday</h4>
</div>
</div>
</div><a class="indexterm" name="id357677" id="id357677"></a>Returns the day of
week (sunday=1, monday=2, ...saturday=7) in a <a href=
"#dateObject">dateObject</a>.
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>getweekday</strong></span>()
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
d = date(1970, 1, 1)
assert(d:getweekday() == 5)
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.getweeknumber" id=
"dateObject.getweeknumber"></a>7.3.25.&nbsp;getweeknumber</h4>
</div>
</div>
</div><a class="indexterm" name="id357732" id="id357732"></a>Returns the week
number value in a <a href="#dateObject">dateObject</a>.
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>getweeknumber</strong></span>([<em class=
"parameter"><code>int_wdaybase</code></em>])
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Arguments</strong></span></span></dt>
<dd>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"emphasis"><em>int_wdaybase</em></span></span></dt>
<dd>Optional <code class="classname">integer</code> value. The
starting day of week (1 for sunday, 2 for monday, ... 7 for
saturday). If omitted the starting day of week is sunday.</dd>
</dl>
</div>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
a = date("12/31/1972")
b,c = a:getweeknumber(), a:getweeknumber(2)
assert(b==53 and c==52)
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.getyear" id=
"dateObject.getyear"></a>7.3.26.&nbsp;getyear</h4>
</div>
</div>
</div><a class="indexterm" name="id357817" id="id357817"></a>Returns the year
value in a <a href="#dateObject">dateObject</a>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>getyear</strong></span>()
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
d = date(1965, 'jan', 0)
assert(d:getyear() == 1964)
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.getyearday" id=
"dateObject.getyearday"></a>7.3.27.&nbsp;getyearday</h4>
</div>
</div>
</div><a class="indexterm" name="id357870" id="id357870"></a>Returns the day of
year (1-366) in a <a href="#dateObject">dateObject</a>.
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>getyearday</strong></span>()
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
d = date(2181, 1, 12)
assert(d:getyearday() == 12)
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.setday" id=
"dateObject.setday"></a>7.3.28.&nbsp;setday</h4>
</div>
</div>
</div><a class="indexterm" name="id357925" id="id357925"></a>Sets the day of
month value in <a href="#dateObject">dateObject</a>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>setday</strong></span>(<em class=
"parameter"><code>int_mday</code></em>)
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Arguments</strong></span></span></dt>
<dd>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"emphasis"><em>int_mday</em></span></span></dt>
<dd><code class="classname">integer</code> value. A numeric value
equal to the day of month. The default value is <code class=
"literal">the current day of month</code></dd>
</dl>
</div>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Returns</strong></span></span></dt>
<dd>
<table class="simplelist" border="0" summary="Simple list">
<tr>
<td><span class="emphasis"><em>Success</em></span></td>
<td>reference to the <a href="#dateObject">dateObject</a></td>
</tr>
<tr>
<td><span class="emphasis"><em>Failure</em></span></td>
<td>nil.</td>
</tr>
</table>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
d = date(1966, 'july', 6)
d:setday(1)
assert(d == date("1966 july 1"))
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.sethours" id=
"dateObject.sethours"></a>7.3.29.&nbsp;sethours</h4>
</div>
</div>
</div><a class="indexterm" name="id358043" id="id358043"></a>Sets the hour
value in <a href="#dateObject">dateObject</a>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>sethours</strong></span>(<em class=
"parameter"><code>num_hour</code></em>, <em class=
"parameter"><code>num_min</code></em>, <em class=
"parameter"><code>num_sec</code></em>, <em class="parameter"><code>num_ticks</code></em>)
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Arguments</strong></span></span></dt>
<dd>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"emphasis"><em>num_hour</em></span></span></dt>
<dd><code class="classname">number</code> value. The hours value. The
default value is <code class="literal">the current hours
value</code></dd>
<dt><span class="term"><span class=
"emphasis"><em>num_min</em></span></span></dt>
<dd><code class="classname">number</code> value. The minutes after
the hours value. The default value is <code class="literal">the
current minutes value</code></dd>
<dt><span class="term"><span class=
"emphasis"><em>num_sec</em></span></span></dt>
<dd><code class="classname">number</code> value. The seconds after
the minute value. The default value is <code class="literal">the
current seconds value</code></dd>
<dt><span class="term"><span class=
"emphasis"><em>num_ticks</em></span></span></dt>
<dd><code class="classname">number</code> value. The ticks after the
second value. The default value is <code class="literal">the current
ticks value</code></dd>
</dl>
</div>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Returns</strong></span></span></dt>
<dd>
<table class="simplelist" border="0" summary="Simple list">
<tr>
<td><span class="emphasis"><em>Success</em></span></td>
<td>reference to the <a href="#dateObject">dateObject</a></td>
</tr>
<tr>
<td><span class="emphasis"><em>Failure</em></span></td>
<td>nil.</td>
</tr>
</table>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
d = date(1984, 12, 3, 4, 39, 54)
d:sethours(1, 1, 1)
assert(d == date("1984 DEc 3 1:1:1"))
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.setisoweekday" id=
"dateObject.setisoweekday"></a>7.3.30.&nbsp;setisoweekday</h4>
</div>
</div>
</div><a class="indexterm" name="id358218" id="id358218"></a>Sets the ISO 8601
week number value in <a href="#dateObject">dateObject</a>. Using the
Year-WeekOfYear-DayOfWeek date system
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>setisoweekday</strong></span>(<em class=
"parameter"><code>int_wday</code></em>)
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Arguments</strong></span></span></dt>
<dd>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"emphasis"><em>int_wday</em></span></span></dt>
<dd><code class="classname">integer</code> value. The day the week.
The default value is <code class="literal">the current week
day</code></dd>
</dl>
</div>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Returns</strong></span></span></dt>
<dd>
<table class="simplelist" border="0" summary="Simple list">
<tr>
<td><span class="emphasis"><em>Success</em></span></td>
<td>reference to the <a href="#dateObject">dateObject</a></td>
</tr>
<tr>
<td><span class="emphasis"><em>Failure</em></span></td>
<td>nil.</td>
</tr>
</table>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
d = date.isodate(1999, 52, 1)
d:setisoweekday(7)
assert(d == date(2000, 1, 02))
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.setisoweeknumber" id=
"dateObject.setisoweeknumber"></a>7.3.31.&nbsp;setisoweeknumber</h4>
</div>
</div>
</div><a class="indexterm" name="id358339" id="id358339"></a>Sets the ISO 8601
week number value in <a href="#dateObject">dateObject</a>. Using the
Year-WeekOfYear-DayOfWeek date system
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>setisoweeknumber</strong></span>(<em class=
"parameter"><code>int_week</code></em>, <em class="parameter"><code>int_wday</code></em>)
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Arguments</strong></span></span></dt>
<dd>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"emphasis"><em>int_week</em></span></span></dt>
<dd><code class="classname">integer</code> value. The week value.
The default value is <code class="literal">the current
week</code></dd>
<dt><span class="term"><span class=
"emphasis"><em>int_wday</em></span></span></dt>
<dd><code class="classname">integer</code> value. The day of the week.
The default value is <code class="literal">the current week
day</code></dd>
</dl>
</div>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Returns</strong></span></span></dt>
<dd>
<table class="simplelist" border="0" summary="Simple list">
<tr>
<td><span class="emphasis"><em>Success</em></span></td>
<td>reference to the <a href="#dateObject">dateObject</a></td>
</tr>
<tr>
<td><span class="emphasis"><em>Failure</em></span></td>
<td>nil.</td>
</tr>
</table>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
d = date(1999, 12, 27)
d:setisoweeknumber(51, 7)
assert(d == date(1999, 12, 26))
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.setisoyear" id=
"dateObject.setisoyear"></a>7.3.32.&nbsp;setisoyear</h4>
</div>
</div>
</div><a class="indexterm" name="id358479" id="id358479"></a>Sets the ISO 8601
year value in <a href="#dateObject">dateObject</a>. Using the
Year-WeekOfYear-DayOfWeek date system
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>setisoyear</strong></span>(<em class=
"parameter"><code>int_year</code></em>, <em class=
"parameter"><code>int_week</code></em>, <em class="parameter"><code>int_wday</code></em>)
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Arguments</strong></span></span></dt>
<dd>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"emphasis"><em>int_year</em></span></span></dt>
<dd><code class="classname">integer</code> value. The year value. The
default value is <code class="literal">the current year</code></dd>
<dt><span class="term"><span class=
"emphasis"><em>int_week</em></span></span></dt>
<dd><code class="classname">integer</code> value. The week value.
The default value is <code class="literal">the current
week</code></dd>
<dt><span class="term"><span class=
"emphasis"><em>int_wday</em></span></span></dt>
<dd><code class="classname">integer</code> value. The day of the week.
The default value is <code class="literal">the current week
day</code></dd>
</dl>
</div>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Returns</strong></span></span></dt>
<dd>
<table class="simplelist" border="0" summary="Simple list">
<tr>
<td><span class="emphasis"><em>Success</em></span></td>
<td>reference to the <a href="#dateObject">dateObject</a></td>
</tr>
<tr>
<td><span class="emphasis"><em>Failure</em></span></td>
<td>nil.</td>
</tr>
</table>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
d = date(1999, 12, 27)
d:setisoyear(2000, 1)
assert(d == date.isodate(2000,1,1))
assert(d:getyear() == 2000)
assert(d:getday() == 3)
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.setminutes" id=
"dateObject.setminutes"></a>7.3.33.&nbsp;setminutes</h4>
</div>
</div>
</div><a class="indexterm" name="id358637" id="id358637"></a>Sets the minutes
value in <a href="#dateObject">dateObject</a>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>setminutes</strong></span>(<em class=
"parameter"><code>num_min</code></em>, <em class=
"parameter"><code>num_sec</code></em>, <em class="parameter"><code>num_ticks</code></em>)
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Arguments</strong></span></span></dt>
<dd>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"emphasis"><em>num_min</em></span></span></dt>
<dd><code class="classname">number</code> value. The minutes after
the value. The default value is <code class="literal">the current
minutes value</code></dd>
<dt><span class="term"><span class=
"emphasis"><em>num_sec</em></span></span></dt>
<dd><code class="classname">number</code> value. The seconds after
the minute value. The default value is <code class="literal">the
current seconds value</code></dd>
<dt><span class="term"><span class=
"emphasis"><em>num_ticks</em></span></span></dt>
<dd><code class="classname">number</code> value. The ticks after the
second value. The default value is <code class="literal">the current
ticks value</code></dd>
</dl>
</div>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Returns</strong></span></span></dt>
<dd>
<table class="simplelist" border="0" summary="Simple list">
<tr>
<td><span class="emphasis"><em>Success</em></span></td>
<td>reference to the <a href="#dateObject">dateObject</a></td>
</tr>
<tr>
<td><span class="emphasis"><em>Failure</em></span></td>
<td>nil.</td>
</tr>
</table>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
d = date(1984, 12, 3, 4, 39, 54)
d:setminutes(59, 59, 500)
assert(d == date(1984, 12, 3, 4, 59, 59, 500))
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.setmonth" id=
"dateObject.setmonth"></a>7.3.34.&nbsp;setmonth</h4>
</div>
</div>
</div><a class="indexterm" name="id358794" id="id358794"></a>Sets the month
value in <a href="#dateObject">dateObject</a>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>setmonth</strong></span>(<em class=
"parameter"><code>var_month</code></em>, <em class=
"parameter"><code>int_mday</code></em>)
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Arguments</strong></span></span></dt>
<dd>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"emphasis"><em>var_month</em></span></span></dt>
<dd><a href="#ParsableMonthValue">parsable month value</a>. The
default value is <code class="literal">the current month</code></dd>
<dt><span class="term"><span class=
"emphasis"><em>int_mday</em></span></span></dt>
<dd><code class="classname">integer</code> value. The day of month.
The default value is <code class="literal">the current day of
month</code></dd>
</dl>
</div>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Returns</strong></span></span></dt>
<dd>
<table class="simplelist" border="0" summary="Simple list">
<tr>
<td><span class="emphasis"><em>Success</em></span></td>
<td>reference to the <a href="#dateObject">dateObject</a></td>
</tr>
<tr>
<td><span class="emphasis"><em>Failure</em></span></td>
<td>nil.</td>
</tr>
</table>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
d = date(1966, 'july', 6)
d:setmonth(1)
assert(d == date("6 jan 1966"))
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.setseconds" id=
"dateObject.setseconds"></a>7.3.35.&nbsp;setseconds</h4>
</div>
</div>
</div><a class="indexterm" name="id358931" id="id358931"></a>Sets the seconds
after the minute value in <a href="#dateObject">dateObject</a>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>setseconds</strong></span>(<em class=
"parameter"><code>num_sec</code></em>, <em class="parameter"><code>num_ticks</code></em>)
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Arguments</strong></span></span></dt>
<dd>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"emphasis"><em>num_sec</em></span></span></dt>
<dd><code class="classname">number</code> value. The seconds after
the minute value. The default value is <code class="literal">the
current seconds value</code></dd>
<dt><span class="term"><span class=
"emphasis"><em>num_ticks</em></span></span></dt>
<dd><code class="classname">number</code> value. The ticks after the
second value. The default value is <code class="literal">the current
ticks value</code></dd>
</dl>
</div>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Returns</strong></span></span></dt>
<dd>
<table class="simplelist" border="0" summary="Simple list">
<tr>
<td><span class="emphasis"><em>Success</em></span></td>
<td>reference to the <a href="#dateObject">dateObject</a></td>
</tr>
<tr>
<td><span class="emphasis"><em>Failure</em></span></td>
<td>nil.</td>
</tr>
</table>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
d = date(1984, 12, 3, 4, 39, 54)
d:setseconds(59, date.ticks())
assert(d == date(1984, 12, 3, 4, 40))
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.setticks" id=
"dateObject.setticks"></a>7.3.36.&nbsp;setticks</h4>
</div>
</div>
</div><a class="indexterm" name="id359069" id="id359069"></a>Sets the ticks
after the second value in <a href="#dateObject">dateObject</a>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>setticks</strong></span>(<em class=
"parameter"><code>num_ticks</code></em>)
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Arguments</strong></span></span></dt>
<dd>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"emphasis"><em>num_ticks</em></span></span></dt>
<dd><code class="classname">number</code> value. The ticks after the
second value. The default value is <code class="literal">the current
ticks value</code></dd>
</dl>
</div>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Returns</strong></span></span></dt>
<dd>
<table class="simplelist" border="0" summary="Simple list">
<tr>
<td><span class="emphasis"><em>Success</em></span></td>
<td>reference to the <a href="#dateObject">dateObject</a></td>
</tr>
<tr>
<td><span class="emphasis"><em>Failure</em></span></td>
<td>nil.</td>
</tr>
</table>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
d = date(1984, 12, 3, 4, 39, 54)
d:setticks(444)
assert(d == date(1984, 12, 3, 4, 39, 54, 444))
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.setyear" id=
"dateObject.setyear"></a>7.3.37.&nbsp;setyear</h4>
</div>
</div>
</div><a class="indexterm" name="id359188" id="id359188"></a>Sets the year
value in <a href="#dateObject">dateObject</a>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>setyear</strong></span>(<em class=
"parameter"><code>int_year</code></em>, <em class=
"parameter"><code>var_month</code></em>, <em class=
"parameter"><code>int_mday</code></em>)
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Arguments</strong></span></span></dt>
<dd>
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"emphasis"><em>int_year</em></span></span></dt>
<dd><code class="classname">integer</code> value. The year value. The
default value is <code class="literal">the current year</code></dd>
<dt><span class="term"><span class=
"emphasis"><em>var_month</em></span></span></dt>
<dd>The month value. The default value is <code class="literal">the
current month</code></dd>
<dt><span class="term"><span class=
"emphasis"><em>int_mday</em></span></span></dt>
<dd><code class="classname">integer</code> value. The day of month.
The default value is <code class="literal">the current day of
month</code></dd>
</dl>
</div>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Returns</strong></span></span></dt>
<dd>
<table class="simplelist" border="0" summary="Simple list">
<tr>
<td><span class="emphasis"><em>Success</em></span></td>
<td>reference to the <a href="#dateObject">dateObject</a></td>
</tr>
<tr>
<td><span class="emphasis"><em>Failure</em></span></td>
<td>nil.</td>
</tr>
</table>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
d = date(1966, 'july', 6)
d:setyear(2000)
assert(d == date("jul 6 2000"))
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.spandays" id=
"dateObject.spandays"></a>7.3.38.&nbsp;spandays</h4>
</div>
</div>
</div><a class="indexterm" name="id359339" id="id359339"></a>Returns how many
days the <a href="#dateObject">dateObject</a> has
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>spandays</strong></span>()
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
a = date(2181, "aPr", 4, 6, 30, 30, 15000)
b = date(a):adddays(2)
c = date.diff(b, a)
assert(c:spandays() == (2))
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.spanhours" id=
"dateObject.spanhours"></a>7.3.39.&nbsp;spanhours</h4>
</div>
</div>
</div><a class="indexterm" name="id359393" id="id359393"></a>Returns how many
hours the <a href="#dateObject">dateObject</a> has
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>spanhours</strong></span>()
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
a = date(2181, "aPr", 4, 6, 30, 30, 15000)
b = date(a):adddays(2)
c = date.diff(b, a)
assert(c:spanhours() == (2*24))
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.spanminutes" id=
"dateObject.spanminutes"></a>7.3.40.&nbsp;spanminutes</h4>
</div>
</div>
</div><a class="indexterm" name="id359446" id="id359446"></a>Returns how many
minutes the <a href="#dateObject">dateObject</a> has
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>spanminutes</strong></span>()
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
a = date(2181, "aPr", 4, 6, 30, 30, 15000)
b = date(a):adddays(2)
c = date.diff(b, a)
assert(c:spanminutes() == (2*24*60))
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.spanseconds" id=
"dateObject.spanseconds"></a>7.3.41.&nbsp;spanseconds</h4>
</div>
</div>
</div><a class="indexterm" name="id359500" id="id359500"></a>Returns how many
seconds the <a href="#dateObject">dateObject</a> has
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>spanseconds</strong></span>()
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
a = date(2181, "aPr", 4, 6, 30, 30, 15000)
b = date(a):adddays(2)
c = date.diff(b, a)
assert(c:spanseconds() == (2*24*60*60))
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.spanticks" id=
"dateObject.spanticks"></a>7.3.42.&nbsp;spanticks</h4>
</div>
</div>
</div><a class="indexterm" name="id359556" id="id359556"></a>Returns how many
ticks the <a href="#dateObject">dateObject</a> has
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>spanticks</strong></span>()
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Remarks</strong></span></span></dt>
<dd>For discussion about ticks see <a href="#DaysAndTick" title=
"7.1.&nbsp;How Date and Time are stored in dateObject">Section&nbsp;7.1,
&ldquo;How Date and Time are stored in <code class=
"classname">dateObject</code>&rdquo;</a>.</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
a = date(2181, "aPr", 4, 6, 30, 30, 15000)
b = date(a):adddays(2)
c = date.diff(b, a)
assert(c:spanticks() == (2*24*60*60*1000000))
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.tolocal" id=
"dateObject.tolocal"></a>7.3.43.&nbsp;tolocal</h4>
</div>
</div>
</div><a class="indexterm" name="id359627" id="id359627"></a> Assuming <a href=
"#dateObject">dateObject</a> is a utc time. Convert its date and time value to
local time.
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>tolocal</strong></span>()
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
a = date(2^16)
b = a:copy():tolocal();
print(a,b)
</pre>
</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a name="dateObject.toutc" id=
"dateObject.toutc"></a>7.3.44.&nbsp;toutc</h4>
</div>
</div>
</div><a class="indexterm" name="id359683" id="id359683"></a> Assuming <a href=
"#dateObject">dateObject</a> is a local time. Convert its date and time value
to utc time.
<div class="variablelist">
<dl>
<dt><span class="term"><span class=
"bold"><strong>Syntax</strong></span></span></dt>
<dd>
<pre class="programlisting">
dateObject:<span class="bold"><strong>toutc</strong></span>()
</pre>
</dd>
<dt><span class="term"><span class=
"bold"><strong>Example</strong></span></span></dt>
<dd>
<pre class="programlisting">
a = date(2^16)
b = a:copy():toutc();
print(a,b)
</pre>
</dd>
</dl>
</div>
</div>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h2 class="title" style="clear: both"><a name="history" id=
"history"></a>8.&nbsp;History</h2>
</div>
</div>
</div>
<div class="variablelist">
<dl>
<dt><span class="term">v1 (2005)</span></dt>
<dd>Binary module</dd>
<dt><span class="term">v2 (2006)</span></dt>
<dd>Lua module</dd>
</dl>
</div>
</div>
<div class="section" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h2 class="title" style="clear: both"><a name="ackno" id=
"ackno"></a>9.&nbsp;Acknowledgement</h2>
</div>
</div>
</div>
<p><a href="http://alcor.concordia.ca/~gpkatch/gdate-method.html" target=
"_top">http://alcor.concordia.ca/~gpkatch/gdate-method.html</a> - Date calculation
algorithms is based on this site.</p>
</div>
</div>
</body>
</html>