1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271
|
<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<refentry id="libedataserver-e-time-utils">
<refmeta>
<refentrytitle role="top_of_page">Time-Related Utility Functions</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>LIBEDATASERVER Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>Time-Related Utility Functions</refname>
<refpurpose>Utility functions for time structure manipulation.</refpurpose>
<!--[<xref linkend="desc" endterm="desc.title"/>]-->
</refnamediv>
<refsynopsisdiv role="synopsis">
<title role="synopsis.title">Synopsis</title>
<synopsis>
enum <link linkend="ETimeParseStatus">ETimeParseStatus</link>;
<link linkend="ETimeParseStatus">ETimeParseStatus</link> <link linkend="e-time-parse-date-and-time">e_time_parse_date_and_time</link> (const <link linkend="char">char</link> *value,
<link linkend="struct-tm">struct tm</link> *result);
<link linkend="ETimeParseStatus">ETimeParseStatus</link> <link linkend="e-time-parse-date">e_time_parse_date</link> (const <link linkend="char">char</link> *value,
<link linkend="struct-tm">struct tm</link> *result);
<link linkend="ETimeParseStatus">ETimeParseStatus</link> <link linkend="e-time-parse-time">e_time_parse_time</link> (const <link linkend="char">char</link> *value,
<link linkend="struct-tm">struct tm</link> *result);
<link linkend="void">void</link> <link linkend="e-time-format-date-and-time">e_time_format_date_and_time</link> (<link linkend="struct-tm">struct tm</link> *date_tm,
<link linkend="gboolean">gboolean</link> use_24_hour_format,
<link linkend="gboolean">gboolean</link> show_midnight,
<link linkend="gboolean">gboolean</link> show_zero_seconds,
<link linkend="char">char</link> *buffer,
<link linkend="int">int</link> buffer_size);
<link linkend="void">void</link> <link linkend="e-time-format-time">e_time_format_time</link> (<link linkend="struct-tm">struct tm</link> *date_tm,
<link linkend="gboolean">gboolean</link> use_24_hour_format,
<link linkend="gboolean">gboolean</link> show_zero_seconds,
<link linkend="char">char</link> *buffer,
<link linkend="int">int</link> buffer_size);
<link linkend="time-t">time_t</link> <link linkend="e-mktime-utc">e_mktime_utc</link> (<link linkend="struct-tm">struct tm</link> *tm);
<link linkend="void">void</link> <link linkend="e-localtime-with-offset">e_localtime_with_offset</link> (<link linkend="time-t">time_t</link> tt,
<link linkend="struct-tm">struct tm</link> *tm,
<link linkend="int">int</link> *offset);
</synopsis>
</refsynopsisdiv>
<refsect1 role="desc">
<title role="desc.title">Description</title>
<para>
</para>
</refsect1>
<refsect1 role="details">
<title role="details.title">Details</title>
<refsect2>
<title><anchor id="ETimeParseStatus" role="enum"/>enum ETimeParseStatus</title>
<indexterm><primary>ETimeParseStatus</primary></indexterm><programlisting>typedef enum {
E_TIME_PARSE_OK,
E_TIME_PARSE_NONE,
E_TIME_PARSE_INVALID
} ETimeParseStatus;
</programlisting>
<para>
</para>
<para>
</para><variablelist role="enum">
<varlistentry>
<term><anchor id="E-TIME-PARSE-OK:CAPS" role="constant"/><literal>E_TIME_PARSE_OK</literal></term>
<listitem><simpara> The time string was parsed successfully.
</simpara></listitem>
</varlistentry>
<varlistentry>
<term><anchor id="E-TIME-PARSE-NONE:CAPS" role="constant"/><literal>E_TIME_PARSE_NONE</literal></term>
<listitem><simpara> The time string was empty.
</simpara></listitem>
</varlistentry>
<varlistentry>
<term><anchor id="E-TIME-PARSE-INVALID:CAPS" role="constant"/><literal>E_TIME_PARSE_INVALID</literal></term>
<listitem><simpara> The time string was not formatted correctly.
</simpara></listitem>
</varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-time-parse-date-and-time" role="function"/>e_time_parse_date_and_time ()</title>
<indexterm><primary>e_time_parse_date_and_time</primary></indexterm><programlisting><link linkend="ETimeParseStatus">ETimeParseStatus</link> e_time_parse_date_and_time (const <link linkend="char">char</link> *value,
<link linkend="struct-tm">struct tm</link> *result);</programlisting>
<para>
Parses a string <parameter>value</parameter> containing a date and a time and stores the
result in <parameter>result</parameter>. The date in <parameter>value</parameter> is expected to be in a format
like "Wed 3/13/00 14:20:00", though <link linkend="gettext"><function>gettext()</function></link> is used to support the
appropriate local formats. There is also some leniency on the
format of the string, e.g. the weekday can be skipped or 12-hour
formats with am/pm can be used.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>value</parameter> :</term>
<listitem><simpara> The string to parse a date and time from.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>result</parameter> :</term>
<listitem><simpara> A <link linkend="tm"><type>tm</type></link> to store the result in.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> E_TIME_PARSE_OK if the string was successfully parsed,
E_TIME_PARSE_NONE if the string was empty, or
E_TIME_PARSE_INVALID if the string could not be parsed.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-time-parse-date" role="function"/>e_time_parse_date ()</title>
<indexterm><primary>e_time_parse_date</primary></indexterm><programlisting><link linkend="ETimeParseStatus">ETimeParseStatus</link> e_time_parse_date (const <link linkend="char">char</link> *value,
<link linkend="struct-tm">struct tm</link> *result);</programlisting>
<para>
Takes in a date string entered by the user and tries to convert it to
a struct <link linkend="tm"><type>tm</type></link>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>value</parameter> :</term>
<listitem><simpara> A date string.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>result</parameter> :</term>
<listitem><simpara> Return value for the parsed date.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> An <link linkend="ETimeParseStatus"><type>ETimeParseStatus</type></link> result code indicating whether
<parameter>value</parameter> was an empty string, a valid date, or an invalid date.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-time-parse-time" role="function"/>e_time_parse_time ()</title>
<indexterm><primary>e_time_parse_time</primary></indexterm><programlisting><link linkend="ETimeParseStatus">ETimeParseStatus</link> e_time_parse_time (const <link linkend="char">char</link> *value,
<link linkend="struct-tm">struct tm</link> *result);</programlisting>
<para>
Parses <parameter>value</parameter>, a string containing a time. <parameter>value</parameter> is expected to be
in a format like "14:20:00". <link linkend="gettext"><function>gettext()</function></link> is used to
support the appropriate local formats and slightly
different formats, such as 12-hour formats with am/pm,
are accepted as well.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>value</parameter> :</term>
<listitem><simpara> The string to parse a time from.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>result</parameter> :</term>
<listitem><simpara> A <link linkend="tm"><type>tm</type></link> to store the result in.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> An <link linkend="ETimeParseStatus"><type>ETimeParseStatus</type></link> result code indicating whether
<parameter>value</parameter> was an empty string, a valid date, or an invalid date.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-time-format-date-and-time" role="function"/>e_time_format_date_and_time ()</title>
<indexterm><primary>e_time_format_date_and_time</primary></indexterm><programlisting><link linkend="void">void</link> e_time_format_date_and_time (<link linkend="struct-tm">struct tm</link> *date_tm,
<link linkend="gboolean">gboolean</link> use_24_hour_format,
<link linkend="gboolean">gboolean</link> show_midnight,
<link linkend="gboolean">gboolean</link> show_zero_seconds,
<link linkend="char">char</link> *buffer,
<link linkend="int">int</link> buffer_size);</programlisting>
<para>
Creates a string representation of the time value <parameter>date_tm</parameter> and
stores it in <parameter>buffer</parameter>. <parameter>buffer_size</parameter> should be at least 64 to be
safe. If <parameter>show_midnight</parameter> is <link linkend="FALSE:CAPS"><type>FALSE</type></link>, and the time is midnight, then
only the date is stored in <parameter>buffer</parameter>. If <parameter>show_zero_seconds</parameter> is
<link linkend="FALSE:CAPS"><type>FALSE</type></link>, then if the time has zero seconds only the hour and minute
of the time are stored in <parameter>buffer</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>date_tm</parameter> :</term>
<listitem><simpara> The <link linkend="tm"><type>tm</type></link> to convert to a string.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>use_24_hour_format</parameter> :</term>
<listitem><simpara> A <link linkend="gboolean"><type>gboolean</type></link>.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>show_midnight</parameter> :</term>
<listitem><simpara> A <link linkend="gboolean"><type>gboolean</type></link>.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>show_zero_seconds</parameter> :</term>
<listitem><simpara> A <link linkend="gboolean"><type>gboolean</type></link>.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>buffer</parameter> :</term>
<listitem><simpara> A <link linkend="char"><type>char</type></link> buffer to store the time string in.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>buffer_size</parameter> :</term>
<listitem><simpara> The length of <parameter>buffer</parameter>.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-time-format-time" role="function"/>e_time_format_time ()</title>
<indexterm><primary>e_time_format_time</primary></indexterm><programlisting><link linkend="void">void</link> e_time_format_time (<link linkend="struct-tm">struct tm</link> *date_tm,
<link linkend="gboolean">gboolean</link> use_24_hour_format,
<link linkend="gboolean">gboolean</link> show_zero_seconds,
<link linkend="char">char</link> *buffer,
<link linkend="int">int</link> buffer_size);</programlisting>
<para>
Creates a string representation of a time value in <parameter>date_tm</parameter> and
stores it in <parameter>buffer</parameter>. <parameter>buffer_size</parameter> should be at least 64.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>date_tm</parameter> :</term>
<listitem><simpara> The <link linkend="tm"><type>tm</type></link> to convert to a string.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>use_24_hour_format</parameter> :</term>
<listitem><simpara> A <link linkend="gboolean"><type>gboolean</type></link>.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>show_zero_seconds</parameter> :</term>
<listitem><simpara> A <link linkend="gboolean"><type>gboolean</type></link>.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>buffer</parameter> :</term>
<listitem><simpara> The <link linkend="char"><type>char</type></link> buffer to store the result in.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>buffer_size</parameter> :</term>
<listitem><simpara> The length of <parameter>buffer</parameter>.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-mktime-utc" role="function"/>e_mktime_utc ()</title>
<indexterm><primary>e_mktime_utc</primary></indexterm><programlisting><link linkend="time-t">time_t</link> e_mktime_utc (<link linkend="struct-tm">struct tm</link> *tm);</programlisting>
<para>
Like mktime(3), but assumes UTC instead of local timezone.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>tm</parameter> :</term>
<listitem><simpara> The <link linkend="tm"><type>tm</type></link> to convert to a calendar time representation.
</simpara></listitem></varlistentry>
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara> The calendar time representation of <parameter>tm</parameter>.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
<refsect2>
<title><anchor id="e-localtime-with-offset" role="function"/>e_localtime_with_offset ()</title>
<indexterm><primary>e_localtime_with_offset</primary></indexterm><programlisting><link linkend="void">void</link> e_localtime_with_offset (<link linkend="time-t">time_t</link> tt,
<link linkend="struct-tm">struct tm</link> *tm,
<link linkend="int">int</link> *offset);</programlisting>
<para>
Converts the calendar time time representation <parameter>tt</parameter> to a broken-down
time representation, store in <parameter>tm</parameter>, and provides the offset in
seconds from UTC time, stored in <parameter>offset</parameter>.</para>
<para>
</para><variablelist role="params">
<varlistentry><term><parameter>tt</parameter> :</term>
<listitem><simpara> The <link linkend="time-t"><type>time_t</type></link> to convert.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>tm</parameter> :</term>
<listitem><simpara> The <link linkend="tm"><type>tm</type></link> to store the result in.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>offset</parameter> :</term>
<listitem><simpara> The <link linkend="int"><type>int</type></link> to store the offset in.
</simpara></listitem></varlistentry>
</variablelist></refsect2>
</refsect1>
</refentry>
|