Tizen 2.1 base
[platform/upstream/glib2.0.git] / docs / reference / glib / html / glib-Date-and-Time-Functions.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>Date and Time Functions</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
7 <link rel="home" href="index.html" title="GLib Reference Manual">
8 <link rel="up" href="glib-utilities.html" title="GLib Utilities">
9 <link rel="prev" href="glib-I18N.html" title="Internationalization">
10 <link rel="next" href="glib-GTimeZone.html" title="GTimeZone">
11 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 </head>
14 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
16 <tr valign="middle">
17 <td><a accesskey="p" href="glib-I18N.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
18 <td><a accesskey="u" href="glib-utilities.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
19 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
20 <th width="100%" align="center">GLib Reference Manual</th>
21 <td><a accesskey="n" href="glib-GTimeZone.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
22 </tr>
23 <tr><td colspan="5" class="shortcuts">
24 <a href="#glib-Date-and-Time-Functions.synopsis" class="shortcut">Top</a>
25                    | 
26                   <a href="#glib-Date-and-Time-Functions.description" class="shortcut">Description</a>
27 </td></tr>
28 </table>
29 <div class="refentry">
30 <a name="glib-Date-and-Time-Functions"></a><div class="titlepage"></div>
31 <div class="refnamediv"><table width="100%"><tr>
32 <td valign="top">
33 <h2><span class="refentrytitle"><a name="glib-Date-and-Time-Functions.top_of_page"></a>Date and Time Functions</span></h2>
34 <p>Date and Time Functions — calendrical calculations and miscellaneous time stuff</p>
35 </td>
36 <td valign="top" align="right"></td>
37 </tr></table></div>
38 <div class="refsynopsisdiv">
39 <a name="glib-Date-and-Time-Functions.synopsis"></a><h2>Synopsis</h2>
40 <pre class="synopsis">
41 #include &lt;glib.h&gt;
42
43 #define             <a class="link" href="glib-Date-and-Time-Functions.html#G-USEC-PER-SEC:CAPS" title="G_USEC_PER_SEC">G_USEC_PER_SEC</a>
44 struct              <a class="link" href="glib-Date-and-Time-Functions.html#GTimeVal" title="struct GTimeVal">GTimeVal</a>;
45 <span class="returnvalue">void</span>                <a class="link" href="glib-Date-and-Time-Functions.html#g-get-current-time" title="g_get_current_time ()">g_get_current_time</a>                  (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GTimeVal" title="struct GTimeVal"><span class="type">GTimeVal</span></a> *result</code></em>);
46 <span class="returnvalue">void</span>                <a class="link" href="glib-Date-and-Time-Functions.html#g-usleep" title="g_usleep ()">g_usleep</a>                            (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gulong" title="gulong"><span class="type">gulong</span></a> microseconds</code></em>);
47 <span class="returnvalue">void</span>                <a class="link" href="glib-Date-and-Time-Functions.html#g-time-val-add" title="g_time_val_add ()">g_time_val_add</a>                      (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GTimeVal" title="struct GTimeVal"><span class="type">GTimeVal</span></a> *time_</code></em>,
48                                                          <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="type">glong</span></a> microseconds</code></em>);
49 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="glib-Date-and-Time-Functions.html#g-time-val-from-iso8601" title="g_time_val_from_iso8601 ()">g_time_val_from_iso8601</a>             (<em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *iso_date</code></em>,
50                                                          <em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GTimeVal" title="struct GTimeVal"><span class="type">GTimeVal</span></a> *time_</code></em>);
51 <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *             <a class="link" href="glib-Date-and-Time-Functions.html#g-time-val-to-iso8601" title="g_time_val_to_iso8601 ()">g_time_val_to_iso8601</a>               (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GTimeVal" title="struct GTimeVal"><span class="type">GTimeVal</span></a> *time_</code></em>);
52
53 <a class="link" href="glib-Basic-Types.html#gint64" title="gint64"><span class="returnvalue">gint64</span></a>              <a class="link" href="glib-Date-and-Time-Functions.html#g-get-monotonic-time" title="g_get_monotonic_time ()">g_get_monotonic_time</a>                (<em class="parameter"><code><span class="type">void</span></code></em>);
54 <a class="link" href="glib-Basic-Types.html#gint64" title="gint64"><span class="returnvalue">gint64</span></a>              <a class="link" href="glib-Date-and-Time-Functions.html#g-get-real-time" title="g_get_real_time ()">g_get_real_time</a>                     (<em class="parameter"><code><span class="type">void</span></code></em>);
55
56 struct              <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate">GDate</a>;
57 typedef             <a class="link" href="glib-Date-and-Time-Functions.html#GTime" title="GTime">GTime</a>;
58 enum                <a class="link" href="glib-Date-and-Time-Functions.html#GDateDMY" title="enum GDateDMY">GDateDMY</a>;
59 typedef             <a class="link" href="glib-Date-and-Time-Functions.html#GDateDay" title="GDateDay">GDateDay</a>;
60 enum                <a class="link" href="glib-Date-and-Time-Functions.html#GDateMonth" title="enum GDateMonth">GDateMonth</a>;
61 typedef             <a class="link" href="glib-Date-and-Time-Functions.html#GDateYear" title="GDateYear">GDateYear</a>;
62 enum                <a class="link" href="glib-Date-and-Time-Functions.html#GDateWeekday" title="enum GDateWeekday">GDateWeekday</a>;
63
64 #define             <a class="link" href="glib-Date-and-Time-Functions.html#G-DATE-BAD-DAY:CAPS" title="G_DATE_BAD_DAY">G_DATE_BAD_DAY</a>
65 #define             <a class="link" href="glib-Date-and-Time-Functions.html#G-DATE-BAD-JULIAN:CAPS" title="G_DATE_BAD_JULIAN">G_DATE_BAD_JULIAN</a>
66 #define             <a class="link" href="glib-Date-and-Time-Functions.html#G-DATE-BAD-YEAR:CAPS" title="G_DATE_BAD_YEAR">G_DATE_BAD_YEAR</a>
67
68 <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="returnvalue">GDate</span></a> *             <a class="link" href="glib-Date-and-Time-Functions.html#g-date-new" title="g_date_new ()">g_date_new</a>                          (<em class="parameter"><code><span class="type">void</span></code></em>);
69 <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="returnvalue">GDate</span></a> *             <a class="link" href="glib-Date-and-Time-Functions.html#g-date-new-dmy" title="g_date_new_dmy ()">g_date_new_dmy</a>                      (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateDay" title="GDateDay"><span class="type">GDateDay</span></a> day</code></em>,
70                                                          <em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateMonth" title="enum GDateMonth"><span class="type">GDateMonth</span></a> month</code></em>,
71                                                          <em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateYear" title="GDateYear"><span class="type">GDateYear</span></a> year</code></em>);
72 <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="returnvalue">GDate</span></a> *             <a class="link" href="glib-Date-and-Time-Functions.html#g-date-new-julian" title="g_date_new_julian ()">g_date_new_julian</a>                   (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint32" title="guint32"><span class="type">guint32</span></a> julian_day</code></em>);
73 <span class="returnvalue">void</span>                <a class="link" href="glib-Date-and-Time-Functions.html#g-date-clear" title="g_date_clear ()">g_date_clear</a>                        (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
74                                                          <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> n_dates</code></em>);
75 <span class="returnvalue">void</span>                <a class="link" href="glib-Date-and-Time-Functions.html#g-date-free" title="g_date_free ()">g_date_free</a>                         (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>);
76
77 <span class="returnvalue">void</span>                <a class="link" href="glib-Date-and-Time-Functions.html#g-date-set-day" title="g_date_set_day ()">g_date_set_day</a>                      (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
78                                                          <em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateDay" title="GDateDay"><span class="type">GDateDay</span></a> day</code></em>);
79 <span class="returnvalue">void</span>                <a class="link" href="glib-Date-and-Time-Functions.html#g-date-set-month" title="g_date_set_month ()">g_date_set_month</a>                    (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
80                                                          <em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateMonth" title="enum GDateMonth"><span class="type">GDateMonth</span></a> month</code></em>);
81 <span class="returnvalue">void</span>                <a class="link" href="glib-Date-and-Time-Functions.html#g-date-set-year" title="g_date_set_year ()">g_date_set_year</a>                     (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
82                                                          <em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateYear" title="GDateYear"><span class="type">GDateYear</span></a> year</code></em>);
83 <span class="returnvalue">void</span>                <a class="link" href="glib-Date-and-Time-Functions.html#g-date-set-dmy" title="g_date_set_dmy ()">g_date_set_dmy</a>                      (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
84                                                          <em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateDay" title="GDateDay"><span class="type">GDateDay</span></a> day</code></em>,
85                                                          <em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateMonth" title="enum GDateMonth"><span class="type">GDateMonth</span></a> month</code></em>,
86                                                          <em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateYear" title="GDateYear"><span class="type">GDateYear</span></a> y</code></em>);
87 <span class="returnvalue">void</span>                <a class="link" href="glib-Date-and-Time-Functions.html#g-date-set-julian" title="g_date_set_julian ()">g_date_set_julian</a>                   (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
88                                                          <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint32" title="guint32"><span class="type">guint32</span></a> julian_date</code></em>);
89 <span class="returnvalue">void</span>                <a class="link" href="glib-Date-and-Time-Functions.html#g-date-set-time" title="g_date_set_time ()">g_date_set_time</a>                     (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
90                                                          <em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GTime" title="GTime"><span class="type">GTime</span></a> time_</code></em>);
91 <span class="returnvalue">void</span>                <a class="link" href="glib-Date-and-Time-Functions.html#g-date-set-time-t" title="g_date_set_time_t ()">g_date_set_time_t</a>                   (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
92                                                          <em class="parameter"><code><span class="type">time_t</span> timet</code></em>);
93 <span class="returnvalue">void</span>                <a class="link" href="glib-Date-and-Time-Functions.html#g-date-set-time-val" title="g_date_set_time_val ()">g_date_set_time_val</a>                 (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
94                                                          <em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GTimeVal" title="struct GTimeVal"><span class="type">GTimeVal</span></a> *timeval</code></em>);
95 <span class="returnvalue">void</span>                <a class="link" href="glib-Date-and-Time-Functions.html#g-date-set-parse" title="g_date_set_parse ()">g_date_set_parse</a>                    (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
96                                                          <em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *str</code></em>);
97
98 <span class="returnvalue">void</span>                <a class="link" href="glib-Date-and-Time-Functions.html#g-date-add-days" title="g_date_add_days ()">g_date_add_days</a>                     (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
99                                                          <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> n_days</code></em>);
100 <span class="returnvalue">void</span>                <a class="link" href="glib-Date-and-Time-Functions.html#g-date-subtract-days" title="g_date_subtract_days ()">g_date_subtract_days</a>                (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
101                                                          <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> n_days</code></em>);
102 <span class="returnvalue">void</span>                <a class="link" href="glib-Date-and-Time-Functions.html#g-date-add-months" title="g_date_add_months ()">g_date_add_months</a>                   (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
103                                                          <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> n_months</code></em>);
104 <span class="returnvalue">void</span>                <a class="link" href="glib-Date-and-Time-Functions.html#g-date-subtract-months" title="g_date_subtract_months ()">g_date_subtract_months</a>              (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
105                                                          <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> n_months</code></em>);
106 <span class="returnvalue">void</span>                <a class="link" href="glib-Date-and-Time-Functions.html#g-date-add-years" title="g_date_add_years ()">g_date_add_years</a>                    (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
107                                                          <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> n_years</code></em>);
108 <span class="returnvalue">void</span>                <a class="link" href="glib-Date-and-Time-Functions.html#g-date-subtract-years" title="g_date_subtract_years ()">g_date_subtract_years</a>               (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
109                                                          <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> n_years</code></em>);
110 <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a>                <a class="link" href="glib-Date-and-Time-Functions.html#g-date-days-between" title="g_date_days_between ()">g_date_days_between</a>                 (<em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date1</code></em>,
111                                                          <em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date2</code></em>);
112 <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a>                <a class="link" href="glib-Date-and-Time-Functions.html#g-date-compare" title="g_date_compare ()">g_date_compare</a>                      (<em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *lhs</code></em>,
113                                                          <em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *rhs</code></em>);
114 <span class="returnvalue">void</span>                <a class="link" href="glib-Date-and-Time-Functions.html#g-date-clamp" title="g_date_clamp ()">g_date_clamp</a>                        (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
115                                                          <em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *min_date</code></em>,
116                                                          <em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *max_date</code></em>);
117 <span class="returnvalue">void</span>                <a class="link" href="glib-Date-and-Time-Functions.html#g-date-order" title="g_date_order ()">g_date_order</a>                        (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date1</code></em>,
118                                                          <em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date2</code></em>);
119
120 <a class="link" href="glib-Date-and-Time-Functions.html#GDateDay" title="GDateDay"><span class="returnvalue">GDateDay</span></a>            <a class="link" href="glib-Date-and-Time-Functions.html#g-date-get-day" title="g_date_get_day ()">g_date_get_day</a>                      (<em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>);
121 <a class="link" href="glib-Date-and-Time-Functions.html#GDateMonth" title="enum GDateMonth"><span class="returnvalue">GDateMonth</span></a>          <a class="link" href="glib-Date-and-Time-Functions.html#g-date-get-month" title="g_date_get_month ()">g_date_get_month</a>                    (<em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>);
122 <a class="link" href="glib-Date-and-Time-Functions.html#GDateYear" title="GDateYear"><span class="returnvalue">GDateYear</span></a>           <a class="link" href="glib-Date-and-Time-Functions.html#g-date-get-year" title="g_date_get_year ()">g_date_get_year</a>                     (<em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>);
123 <a class="link" href="glib-Basic-Types.html#guint32" title="guint32"><span class="returnvalue">guint32</span></a>             <a class="link" href="glib-Date-and-Time-Functions.html#g-date-get-julian" title="g_date_get_julian ()">g_date_get_julian</a>                   (<em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>);
124 <a class="link" href="glib-Date-and-Time-Functions.html#GDateWeekday" title="enum GDateWeekday"><span class="returnvalue">GDateWeekday</span></a>        <a class="link" href="glib-Date-and-Time-Functions.html#g-date-get-weekday" title="g_date_get_weekday ()">g_date_get_weekday</a>                  (<em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>);
125 <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a>               <a class="link" href="glib-Date-and-Time-Functions.html#g-date-get-day-of-year" title="g_date_get_day_of_year ()">g_date_get_day_of_year</a>              (<em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>);
126
127 <a class="link" href="glib-Basic-Types.html#guint8" title="guint8"><span class="returnvalue">guint8</span></a>              <a class="link" href="glib-Date-and-Time-Functions.html#g-date-get-days-in-month" title="g_date_get_days_in_month ()">g_date_get_days_in_month</a>            (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateMonth" title="enum GDateMonth"><span class="type">GDateMonth</span></a> month</code></em>,
128                                                          <em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateYear" title="GDateYear"><span class="type">GDateYear</span></a> year</code></em>);
129 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="glib-Date-and-Time-Functions.html#g-date-is-first-of-month" title="g_date_is_first_of_month ()">g_date_is_first_of_month</a>            (<em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>);
130 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="glib-Date-and-Time-Functions.html#g-date-is-last-of-month" title="g_date_is_last_of_month ()">g_date_is_last_of_month</a>             (<em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>);
131 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="glib-Date-and-Time-Functions.html#g-date-is-leap-year" title="g_date_is_leap_year ()">g_date_is_leap_year</a>                 (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateYear" title="GDateYear"><span class="type">GDateYear</span></a> year</code></em>);
132 <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a>               <a class="link" href="glib-Date-and-Time-Functions.html#g-date-get-monday-week-of-year" title="g_date_get_monday_week_of_year ()">g_date_get_monday_week_of_year</a>      (<em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>);
133 <a class="link" href="glib-Basic-Types.html#guint8" title="guint8"><span class="returnvalue">guint8</span></a>              <a class="link" href="glib-Date-and-Time-Functions.html#g-date-get-monday-weeks-in-year" title="g_date_get_monday_weeks_in_year ()">g_date_get_monday_weeks_in_year</a>     (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateYear" title="GDateYear"><span class="type">GDateYear</span></a> year</code></em>);
134 <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a>               <a class="link" href="glib-Date-and-Time-Functions.html#g-date-get-sunday-week-of-year" title="g_date_get_sunday_week_of_year ()">g_date_get_sunday_week_of_year</a>      (<em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>);
135 <a class="link" href="glib-Basic-Types.html#guint8" title="guint8"><span class="returnvalue">guint8</span></a>              <a class="link" href="glib-Date-and-Time-Functions.html#g-date-get-sunday-weeks-in-year" title="g_date_get_sunday_weeks_in_year ()">g_date_get_sunday_weeks_in_year</a>     (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateYear" title="GDateYear"><span class="type">GDateYear</span></a> year</code></em>);
136 <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a>               <a class="link" href="glib-Date-and-Time-Functions.html#g-date-get-iso8601-week-of-year" title="g_date_get_iso8601_week_of_year ()">g_date_get_iso8601_week_of_year</a>     (<em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>);
137
138 <a class="link" href="glib-Basic-Types.html#gsize" title="gsize"><span class="returnvalue">gsize</span></a>               <a class="link" href="glib-Date-and-Time-Functions.html#g-date-strftime" title="g_date_strftime ()">g_date_strftime</a>                     (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *s</code></em>,
139                                                          <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gsize" title="gsize"><span class="type">gsize</span></a> slen</code></em>,
140                                                          <em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *format</code></em>,
141                                                          <em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>);
142 <span class="returnvalue">void</span>                <a class="link" href="glib-Date-and-Time-Functions.html#g-date-to-struct-tm" title="g_date_to_struct_tm ()">g_date_to_struct_tm</a>                 (<em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
143                                                          <em class="parameter"><code><span class="type">struct tm</span> *tm</code></em>);
144
145 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="glib-Date-and-Time-Functions.html#g-date-valid" title="g_date_valid ()">g_date_valid</a>                        (<em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>);
146 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="glib-Date-and-Time-Functions.html#g-date-valid-day" title="g_date_valid_day ()">g_date_valid_day</a>                    (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateDay" title="GDateDay"><span class="type">GDateDay</span></a> day</code></em>);
147 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="glib-Date-and-Time-Functions.html#g-date-valid-month" title="g_date_valid_month ()">g_date_valid_month</a>                  (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateMonth" title="enum GDateMonth"><span class="type">GDateMonth</span></a> month</code></em>);
148 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="glib-Date-and-Time-Functions.html#g-date-valid-year" title="g_date_valid_year ()">g_date_valid_year</a>                   (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateYear" title="GDateYear"><span class="type">GDateYear</span></a> year</code></em>);
149 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="glib-Date-and-Time-Functions.html#g-date-valid-dmy" title="g_date_valid_dmy ()">g_date_valid_dmy</a>                    (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateDay" title="GDateDay"><span class="type">GDateDay</span></a> day</code></em>,
150                                                          <em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateMonth" title="enum GDateMonth"><span class="type">GDateMonth</span></a> month</code></em>,
151                                                          <em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateYear" title="GDateYear"><span class="type">GDateYear</span></a> year</code></em>);
152 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="glib-Date-and-Time-Functions.html#g-date-valid-julian" title="g_date_valid_julian ()">g_date_valid_julian</a>                 (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint32" title="guint32"><span class="type">guint32</span></a> julian_date</code></em>);
153 <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="glib-Date-and-Time-Functions.html#g-date-valid-weekday" title="g_date_valid_weekday ()">g_date_valid_weekday</a>                (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateWeekday" title="enum GDateWeekday"><span class="type">GDateWeekday</span></a> weekday</code></em>);
154 </pre>
155 </div>
156 <div class="refsect1">
157 <a name="glib-Date-and-Time-Functions.description"></a><h2>Description</h2>
158 <p>
159 The <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> data structure represents a day between January 1, Year 1,
160 and sometime a few thousand years in the future (right now it will go
161 to the year 65535 or so, but <a class="link" href="glib-Date-and-Time-Functions.html#g-date-set-parse" title="g_date_set_parse ()"><code class="function">g_date_set_parse()</code></a> only parses up to the
162 year 8000 or so - just count on "a few thousand"). <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> is meant to
163 represent everyday dates, not astronomical dates or historical dates
164 or ISO timestamps or the like. It extrapolates the current Gregorian
165 calendar forward and backward in time; there is no attempt to change
166 the calendar to match time periods or locations. <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> does not store
167 time information; it represents a <span class="emphasis"><em>day</em></span>.
168 </p>
169 <p>
170 The <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> implementation has several nice features; it is only a
171 64-bit struct, so storing large numbers of dates is very efficient. It
172 can keep both a Julian and day-month-year representation of the date,
173 since some calculations are much easier with one representation or the
174 other. A Julian representation is simply a count of days since some
175 fixed day in the past; for <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> the fixed day is January 1, 1 AD.
176 ("Julian" dates in the <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> API aren't really Julian dates in the
177 technical sense; technically, Julian dates count from the start of the
178 Julian period, Jan 1, 4713 BC).
179 </p>
180 <p>
181 <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> is simple to use. First you need a "blank" date; you can get a
182 dynamically allocated date from <a class="link" href="glib-Date-and-Time-Functions.html#g-date-new" title="g_date_new ()"><code class="function">g_date_new()</code></a>, or you can declare an
183 automatic variable or array and initialize it to a sane state by
184 calling <a class="link" href="glib-Date-and-Time-Functions.html#g-date-clear" title="g_date_clear ()"><code class="function">g_date_clear()</code></a>. A cleared date is sane; it's safe to call
185 <a class="link" href="glib-Date-and-Time-Functions.html#g-date-set-dmy" title="g_date_set_dmy ()"><code class="function">g_date_set_dmy()</code></a> and the other mutator functions to initialize the
186 value of a cleared date. However, a cleared date is initially
187 <span class="emphasis"><em>invalid</em></span>, meaning that it doesn't represent a day
188 that exists. It is undefined to call any of the date calculation
189 routines on an invalid date. If you obtain a date from a user or other
190 unpredictable source, you should check its validity with the
191 <a class="link" href="glib-Date-and-Time-Functions.html#g-date-valid" title="g_date_valid ()"><code class="function">g_date_valid()</code></a> predicate. <a class="link" href="glib-Date-and-Time-Functions.html#g-date-valid" title="g_date_valid ()"><code class="function">g_date_valid()</code></a> is also used to check for
192 errors with <a class="link" href="glib-Date-and-Time-Functions.html#g-date-set-parse" title="g_date_set_parse ()"><code class="function">g_date_set_parse()</code></a> and other functions that can
193 fail. Dates can be invalidated by calling <a class="link" href="glib-Date-and-Time-Functions.html#g-date-clear" title="g_date_clear ()"><code class="function">g_date_clear()</code></a> again.
194 </p>
195 <p>
196 <span class="emphasis"><em>It is very important to use the API to access the <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a>
197 struct.</em></span> Often only the day-month-year or only the Julian
198 representation is valid. Sometimes neither is valid. Use the API.
199 </p>
200 <p>
201 GLib also features <a class="link" href="glib-GDateTime.html#GDateTime" title="GDateTime"><span class="type">GDateTime</span></a> which represents a precise time.
202 </p>
203 </div>
204 <div class="refsect1">
205 <a name="glib-Date-and-Time-Functions.details"></a><h2>Details</h2>
206 <div class="refsect2">
207 <a name="G-USEC-PER-SEC:CAPS"></a><h3>G_USEC_PER_SEC</h3>
208 <pre class="programlisting">#define G_USEC_PER_SEC 1000000
209 </pre>
210 <p>
211 Number of microseconds in one second (1 million).
212 This macro is provided for code readability.
213 </p>
214 </div>
215 <hr>
216 <div class="refsect2">
217 <a name="GTimeVal"></a><h3>struct GTimeVal</h3>
218 <pre class="programlisting">struct GTimeVal {
219   glong tv_sec;
220   glong tv_usec;
221 };
222 </pre>
223 <p>
224 Represents a precise time, with seconds and microseconds.
225 Similar to the <span class="structname">struct timeval</span> returned by
226 the <code class="function">gettimeofday()</code> UNIX system call.
227 </p>
228 <p>
229 GLib is attempting to unify around the use of 64bit integers to
230 represent microsecond-precision time. As such, this type will be
231 removed from a future version of GLib.
232 </p>
233 <div class="variablelist"><table border="0">
234 <col align="left" valign="top">
235 <tbody>
236 <tr>
237 <td><p><span class="term"><a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="type">glong</span></a> <em class="structfield"><code><a name="GTimeVal.tv-sec"></a>tv_sec</code></em>;</span></p></td>
238 <td>seconds</td>
239 </tr>
240 <tr>
241 <td><p><span class="term"><a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="type">glong</span></a> <em class="structfield"><code><a name="GTimeVal.tv-usec"></a>tv_usec</code></em>;</span></p></td>
242 <td>microseconds</td>
243 </tr>
244 </tbody>
245 </table></div>
246 </div>
247 <hr>
248 <div class="refsect2">
249 <a name="g-get-current-time"></a><h3>g_get_current_time ()</h3>
250 <pre class="programlisting"><span class="returnvalue">void</span>                g_get_current_time                  (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GTimeVal" title="struct GTimeVal"><span class="type">GTimeVal</span></a> *result</code></em>);</pre>
251 <p>
252 Equivalent to the UNIX <code class="function">gettimeofday()</code> function, but portable.
253 </p>
254 <p>
255 You may find <a class="link" href="glib-Date-and-Time-Functions.html#g-get-real-time" title="g_get_real_time ()"><code class="function">g_get_real_time()</code></a> to be more convenient.
256 </p>
257 <div class="variablelist"><table border="0">
258 <col align="left" valign="top">
259 <tbody><tr>
260 <td><p><span class="term"><em class="parameter"><code>result</code></em> :</span></p></td>
261 <td>
262 <a class="link" href="glib-Date-and-Time-Functions.html#GTimeVal" title="struct GTimeVal"><span class="type">GTimeVal</span></a> structure in which to store current time.</td>
263 </tr></tbody>
264 </table></div>
265 </div>
266 <hr>
267 <div class="refsect2">
268 <a name="g-usleep"></a><h3>g_usleep ()</h3>
269 <pre class="programlisting"><span class="returnvalue">void</span>                g_usleep                            (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gulong" title="gulong"><span class="type">gulong</span></a> microseconds</code></em>);</pre>
270 <p>
271 Pauses the current thread for the given number of microseconds.
272 </p>
273 <p>
274 There are 1 million microseconds per second (represented by the
275 <a class="link" href="glib-Date-and-Time-Functions.html#G-USEC-PER-SEC:CAPS" title="G_USEC_PER_SEC"><span class="type">G_USEC_PER_SEC</span></a> macro). <a class="link" href="glib-Date-and-Time-Functions.html#g-usleep" title="g_usleep ()"><code class="function">g_usleep()</code></a> may have limited precision,
276 depending on hardware and operating system; don't rely on the exact
277 length of the sleep.
278 </p>
279 <div class="variablelist"><table border="0">
280 <col align="left" valign="top">
281 <tbody><tr>
282 <td><p><span class="term"><em class="parameter"><code>microseconds</code></em> :</span></p></td>
283 <td>number of microseconds to pause</td>
284 </tr></tbody>
285 </table></div>
286 </div>
287 <hr>
288 <div class="refsect2">
289 <a name="g-time-val-add"></a><h3>g_time_val_add ()</h3>
290 <pre class="programlisting"><span class="returnvalue">void</span>                g_time_val_add                      (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GTimeVal" title="struct GTimeVal"><span class="type">GTimeVal</span></a> *time_</code></em>,
291                                                          <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#glong" title="glong"><span class="type">glong</span></a> microseconds</code></em>);</pre>
292 <p>
293 Adds the given number of microseconds to <em class="parameter"><code>time_</code></em>. <em class="parameter"><code>microseconds</code></em> can
294 also be negative to decrease the value of <em class="parameter"><code>time_</code></em>.
295 </p>
296 <div class="variablelist"><table border="0">
297 <col align="left" valign="top">
298 <tbody>
299 <tr>
300 <td><p><span class="term"><em class="parameter"><code>time_</code></em> :</span></p></td>
301 <td>a <a class="link" href="glib-Date-and-Time-Functions.html#GTimeVal" title="struct GTimeVal"><span class="type">GTimeVal</span></a>
302 </td>
303 </tr>
304 <tr>
305 <td><p><span class="term"><em class="parameter"><code>microseconds</code></em> :</span></p></td>
306 <td>number of microseconds to add to <em class="parameter"><code>time</code></em>
307 </td>
308 </tr>
309 </tbody>
310 </table></div>
311 </div>
312 <hr>
313 <div class="refsect2">
314 <a name="g-time-val-from-iso8601"></a><h3>g_time_val_from_iso8601 ()</h3>
315 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            g_time_val_from_iso8601             (<em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *iso_date</code></em>,
316                                                          <em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GTimeVal" title="struct GTimeVal"><span class="type">GTimeVal</span></a> *time_</code></em>);</pre>
317 <p>
318 Converts a string containing an ISO 8601 encoded date and time
319 to a <a class="link" href="glib-Date-and-Time-Functions.html#GTimeVal" title="struct GTimeVal"><span class="type">GTimeVal</span></a> and puts it into <em class="parameter"><code>time_</code></em>.
320 </p>
321 <p>
322 <em class="parameter"><code>iso_date</code></em> must include year, month, day, hours, minutes, and
323 seconds. It can optionally include fractions of a second and a time
324 zone indicator. (In the absence of any time zone indication, the
325 timestamp is assumed to be in local time.)
326 </p>
327 <div class="variablelist"><table border="0">
328 <col align="left" valign="top">
329 <tbody>
330 <tr>
331 <td><p><span class="term"><em class="parameter"><code>iso_date</code></em> :</span></p></td>
332 <td>an ISO 8601 encoded date string</td>
333 </tr>
334 <tr>
335 <td><p><span class="term"><em class="parameter"><code>time_</code></em> :</span></p></td>
336 <td>a <a class="link" href="glib-Date-and-Time-Functions.html#GTimeVal" title="struct GTimeVal"><span class="type">GTimeVal</span></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
337 </td>
338 </tr>
339 <tr>
340 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
341 <td>
342 <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the conversion was successful.</td>
343 </tr>
344 </tbody>
345 </table></div>
346 <p class="since">Since 2.12</p>
347 </div>
348 <hr>
349 <div class="refsect2">
350 <a name="g-time-val-to-iso8601"></a><h3>g_time_val_to_iso8601 ()</h3>
351 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="returnvalue">gchar</span></a> *             g_time_val_to_iso8601               (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GTimeVal" title="struct GTimeVal"><span class="type">GTimeVal</span></a> *time_</code></em>);</pre>
352 <p>
353 Converts <em class="parameter"><code>time_</code></em> into an RFC 3339 encoded string, relative to the
354 Coordinated Universal Time (UTC). This is one of the many formats
355 allowed by ISO 8601.
356 </p>
357 <p>
358 ISO 8601 allows a large number of date/time formats, with or without
359 punctuation and optional elements. The format returned by this function
360 is a complete date and time, with optional punctuation included, the
361 UTC time zone represented as "Z", and the <em class="parameter"><code>tv_usec</code></em> part included if
362 and only if it is nonzero, i.e. either
363 "YYYY-MM-DDTHH:MM:SSZ" or "YYYY-MM-DDTHH:MM:SS.fffffZ".
364 </p>
365 <p>
366 This corresponds to the Internet date/time format defined by
367 <a class="ulink" href="https://www.ietf.org/rfc/rfc3339.txt" target="_top">RFC 3339</a>, and
368 to either of the two most-precise formats defined by
369 <a class="ulink" href="http://www.w3.org/TR/NOTE-datetime-19980827" target="_top">the W3C Note
370 "Date and Time Formats"</a>. Both of these documents are profiles of
371 ISO 8601.
372 </p>
373 <p>
374 Use <a class="link" href="glib-GDateTime.html#g-date-time-format" title="g_date_time_format ()"><code class="function">g_date_time_format()</code></a> or <a class="link" href="glib-String-Utility-Functions.html#g-strdup-printf" title="g_strdup_printf ()"><code class="function">g_strdup_printf()</code></a> if a different
375 variation of ISO 8601 format is required.
376 </p>
377 <div class="variablelist"><table border="0">
378 <col align="left" valign="top">
379 <tbody>
380 <tr>
381 <td><p><span class="term"><em class="parameter"><code>time_</code></em> :</span></p></td>
382 <td>a <a class="link" href="glib-Date-and-Time-Functions.html#GTimeVal" title="struct GTimeVal"><span class="type">GTimeVal</span></a>
383 </td>
384 </tr>
385 <tr>
386 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
387 <td>a newly allocated string containing an ISO 8601 date</td>
388 </tr>
389 </tbody>
390 </table></div>
391 <p class="since">Since 2.12</p>
392 </div>
393 <hr>
394 <div class="refsect2">
395 <a name="g-get-monotonic-time"></a><h3>g_get_monotonic_time ()</h3>
396 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint64" title="gint64"><span class="returnvalue">gint64</span></a>              g_get_monotonic_time                (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
397 <p>
398 Queries the system monotonic time, if available.
399 </p>
400 <p>
401 On POSIX systems with <code class="function">clock_gettime()</code> and <code class="literal">CLOCK_MONOTONIC</code> this call
402 is a very shallow wrapper for that.  Otherwise, we make a best effort
403 that probably involves returning the wall clock time (with at least
404 microsecond accuracy, subject to the limitations of the OS kernel).
405 </p>
406 <p>
407 It's important to note that POSIX <code class="literal">CLOCK_MONOTONIC</code> does
408 not count time spent while the machine is suspended.
409 </p>
410 <p>
411 On Windows, "limitations of the OS kernel" is a rather substantial
412 statement.  Depending on the configuration of the system, the wall
413 clock time is updated as infrequently as 64 times a second (which
414 is approximately every 16ms). Also, on XP (but not on Vista or later)
415 the monotonic clock is locally monotonic, but may differ in exact
416 value between processes due to timer wrap handling.
417 </p>
418 <div class="variablelist"><table border="0">
419 <col align="left" valign="top">
420 <tbody><tr>
421 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
422 <td>the monotonic time, in microseconds</td>
423 </tr></tbody>
424 </table></div>
425 <p class="since">Since 2.28</p>
426 </div>
427 <hr>
428 <div class="refsect2">
429 <a name="g-get-real-time"></a><h3>g_get_real_time ()</h3>
430 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint64" title="gint64"><span class="returnvalue">gint64</span></a>              g_get_real_time                     (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
431 <p>
432 Queries the system wall-clock time.
433 </p>
434 <p>
435 This call is functionally equivalent to <a class="link" href="glib-Date-and-Time-Functions.html#g-get-current-time" title="g_get_current_time ()"><code class="function">g_get_current_time()</code></a> except
436 that the return value is often more convenient than dealing with a
437 <a class="link" href="glib-Date-and-Time-Functions.html#GTimeVal" title="struct GTimeVal"><span class="type">GTimeVal</span></a>.
438 </p>
439 <p>
440 You should only use this call if you are actually interested in the real
441 wall-clock time.  <a class="link" href="glib-Date-and-Time-Functions.html#g-get-monotonic-time" title="g_get_monotonic_time ()"><code class="function">g_get_monotonic_time()</code></a> is probably more useful for
442 measuring intervals.
443 </p>
444 <div class="variablelist"><table border="0">
445 <col align="left" valign="top">
446 <tbody><tr>
447 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
448 <td>the number of microseconds since January 1, 1970 UTC.</td>
449 </tr></tbody>
450 </table></div>
451 <p class="since">Since 2.28</p>
452 </div>
453 <hr>
454 <div class="refsect2">
455 <a name="GDate"></a><h3>struct GDate</h3>
456 <pre class="programlisting">struct GDate {
457   guint julian_days : 32; /* julian days representation - we use a
458                            *  bitfield hoping that 64 bit platforms
459                            *  will pack this whole struct in one big
460                            *  int
461                            */
462
463   guint julian : 1;    /* julian is valid */
464   guint dmy    : 1;    /* dmy is valid */
465
466   /* DMY representation */
467   guint day    : 6;
468   guint month  : 4;
469   guint year   : 16;
470 };
471 </pre>
472 <p>
473 Represents a day between January 1, Year 1 and a few thousand years in
474 the future. None of its members should be accessed directly. If the
475 <span class="structname">GDate</span> is obtained from <a class="link" href="glib-Date-and-Time-Functions.html#g-date-new" title="g_date_new ()"><code class="function">g_date_new()</code></a>, it will
476 be safe to mutate but invalid and thus not safe for calendrical
477 computations. If it's declared on the stack, it will contain garbage
478 so must be initialized with <a class="link" href="glib-Date-and-Time-Functions.html#g-date-clear" title="g_date_clear ()"><code class="function">g_date_clear()</code></a>. <a class="link" href="glib-Date-and-Time-Functions.html#g-date-clear" title="g_date_clear ()"><code class="function">g_date_clear()</code></a> makes the
479 date invalid but sane. An invalid date doesn't represent a day, it's
480 "empty." A date becomes valid after you set it to a Julian day or you
481 set a day, month, and year.
482 </p>
483 <div class="variablelist"><table border="0">
484 <col align="left" valign="top">
485 <tbody>
486 <tr>
487 <td><p><span class="term"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GDate.julian-days"></a>julian_days</code></em> : 32;</span></p></td>
488 <td>the Julian representation of the date</td>
489 </tr>
490 <tr>
491 <td><p><span class="term"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GDate.julian"></a>julian</code></em> : 1;</span></p></td>
492 <td>this bit is set if <em class="parameter"><code>julian_days</code></em> is valid</td>
493 </tr>
494 <tr>
495 <td><p><span class="term"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GDate.dmy"></a>dmy</code></em> : 1;</span></p></td>
496 <td>this is set if <em class="parameter"><code>day</code></em>, <em class="parameter"><code>month</code></em> and <em class="parameter"><code>year</code></em> are valid</td>
497 </tr>
498 <tr>
499 <td><p><span class="term"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GDate.day"></a>day</code></em> : 6;</span></p></td>
500 <td>the day of the day-month-year representation of the date,
501 as a number between 1 and 31</td>
502 </tr>
503 <tr>
504 <td><p><span class="term"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GDate.month"></a>month</code></em> : 4;</span></p></td>
505 <td>the day of the day-month-year representation of the date,
506 as a number between 1 and 12</td>
507 </tr>
508 <tr>
509 <td><p><span class="term"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GDate.year"></a>year</code></em> : 16;</span></p></td>
510 <td>the day of the day-month-year representation of the date</td>
511 </tr>
512 </tbody>
513 </table></div>
514 </div>
515 <hr>
516 <div class="refsect2">
517 <a name="GTime"></a><h3>GTime</h3>
518 <pre class="programlisting">typedef gint32  GTime;
519 </pre>
520 <p>
521 Simply a replacement for <span class="type">time_t</span>. It has been deprecated
522 since it is <span class="emphasis"><em>not</em></span> equivalent to <span class="type">time_t</span>
523 on 64-bit platforms with a 64-bit <span class="type">time_t</span>.
524 Unrelated to <a class="link" href="glib-Timers.html#GTimer" title="GTimer"><span class="type">GTimer</span></a>.
525 </p>
526 <p>
527 Note that <span class="type">GTime</span> is defined to always be a 32bit integer,
528 unlike <span class="type">time_t</span> which may be 64bit on some systems.
529 Therefore, <span class="type">GTime</span> will overflow in the year 2038, and
530 you cannot use the address of a <span class="type">GTime</span> variable as argument
531 to the UNIX <code class="function">time()</code> function. Instead, do the following:
532 </p>
533 <div class="informalexample">
534   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
535     <tbody>
536       <tr>
537         <td class="listing_lines" align="right"><pre>1
538 2
539 3
540 4
541 5</pre></td>
542         <td class="listing_code"><pre class="programlisting"><span class="usertype">time_t</span><span class="normal"> ttime</span><span class="symbol">;</span>
543 <span class="usertype">GTime</span><span class="normal"> gtime</span><span class="symbol">;</span>
544
545 <span class="function">time</span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">ttime</span><span class="symbol">);</span>
546 <span class="normal">gtime </span><span class="symbol">=</span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="glib-Date-and-Time-Functions.html#GTime">GTime</a></span><span class="symbol">)</span><span class="normal">ttime</span><span class="symbol">;</span></pre></td>
547       </tr>
548     </tbody>
549   </table>
550 </div>
551
552 <p>
553 </p>
554 </div>
555 <hr>
556 <div class="refsect2">
557 <a name="GDateDMY"></a><h3>enum GDateDMY</h3>
558 <pre class="programlisting">typedef enum {
559   G_DATE_DAY   = 0,
560   G_DATE_MONTH = 1,
561   G_DATE_YEAR  = 2
562 } GDateDMY;
563 </pre>
564 <p>
565 This enumeration isn't used in the API, but may be useful if you need
566 to mark a number as a day, month, or year.
567 </p>
568 <div class="variablelist"><table border="0">
569 <col align="left" valign="top">
570 <tbody>
571 <tr>
572 <td><p><a name="G-DATE-DAY:CAPS"></a><span class="term"><code class="literal">G_DATE_DAY</code></span></p></td>
573 <td>a day
574 </td>
575 </tr>
576 <tr>
577 <td><p><a name="G-DATE-MONTH:CAPS"></a><span class="term"><code class="literal">G_DATE_MONTH</code></span></p></td>
578 <td>a month
579 </td>
580 </tr>
581 <tr>
582 <td><p><a name="G-DATE-YEAR:CAPS"></a><span class="term"><code class="literal">G_DATE_YEAR</code></span></p></td>
583 <td>a year
584 </td>
585 </tr>
586 </tbody>
587 </table></div>
588 </div>
589 <hr>
590 <div class="refsect2">
591 <a name="GDateDay"></a><h3>GDateDay</h3>
592 <pre class="programlisting">typedef guint8  GDateDay;   /* day of the month */
593 </pre>
594 <p>
595 Integer representing a day of the month; between 1 and
596 31. <a class="link" href="glib-Date-and-Time-Functions.html#G-DATE-BAD-DAY:CAPS" title="G_DATE_BAD_DAY"><span class="type">G_DATE_BAD_DAY</span></a> represents an invalid day of the month.
597 </p>
598 </div>
599 <hr>
600 <div class="refsect2">
601 <a name="GDateMonth"></a><h3>enum GDateMonth</h3>
602 <pre class="programlisting">typedef enum {
603   G_DATE_BAD_MONTH = 0,
604   G_DATE_JANUARY   = 1,
605   G_DATE_FEBRUARY  = 2,
606   G_DATE_MARCH     = 3,
607   G_DATE_APRIL     = 4,
608   G_DATE_MAY       = 5,
609   G_DATE_JUNE      = 6,
610   G_DATE_JULY      = 7,
611   G_DATE_AUGUST    = 8,
612   G_DATE_SEPTEMBER = 9,
613   G_DATE_OCTOBER   = 10,
614   G_DATE_NOVEMBER  = 11,
615   G_DATE_DECEMBER  = 12
616 } GDateMonth;
617 </pre>
618 <p>
619 Enumeration representing a month; values are <a class="link" href="glib-Date-and-Time-Functions.html#G-DATE-JANUARY:CAPS"><span class="type">G_DATE_JANUARY</span></a>,
620 <a class="link" href="glib-Date-and-Time-Functions.html#G-DATE-FEBRUARY:CAPS"><span class="type">G_DATE_FEBRUARY</span></a>, etc. <a class="link" href="glib-Date-and-Time-Functions.html#G-DATE-BAD-MONTH:CAPS"><span class="type">G_DATE_BAD_MONTH</span></a> is the invalid value.
621 </p>
622 <div class="variablelist"><table border="0">
623 <col align="left" valign="top">
624 <tbody>
625 <tr>
626 <td><p><a name="G-DATE-BAD-MONTH:CAPS"></a><span class="term"><code class="literal">G_DATE_BAD_MONTH</code></span></p></td>
627 <td>invalid value
628 </td>
629 </tr>
630 <tr>
631 <td><p><a name="G-DATE-JANUARY:CAPS"></a><span class="term"><code class="literal">G_DATE_JANUARY</code></span></p></td>
632 <td>January
633 </td>
634 </tr>
635 <tr>
636 <td><p><a name="G-DATE-FEBRUARY:CAPS"></a><span class="term"><code class="literal">G_DATE_FEBRUARY</code></span></p></td>
637 <td>February
638 </td>
639 </tr>
640 <tr>
641 <td><p><a name="G-DATE-MARCH:CAPS"></a><span class="term"><code class="literal">G_DATE_MARCH</code></span></p></td>
642 <td>March
643 </td>
644 </tr>
645 <tr>
646 <td><p><a name="G-DATE-APRIL:CAPS"></a><span class="term"><code class="literal">G_DATE_APRIL</code></span></p></td>
647 <td>April
648 </td>
649 </tr>
650 <tr>
651 <td><p><a name="G-DATE-MAY:CAPS"></a><span class="term"><code class="literal">G_DATE_MAY</code></span></p></td>
652 <td>May
653 </td>
654 </tr>
655 <tr>
656 <td><p><a name="G-DATE-JUNE:CAPS"></a><span class="term"><code class="literal">G_DATE_JUNE</code></span></p></td>
657 <td>June
658 </td>
659 </tr>
660 <tr>
661 <td><p><a name="G-DATE-JULY:CAPS"></a><span class="term"><code class="literal">G_DATE_JULY</code></span></p></td>
662 <td>July
663 </td>
664 </tr>
665 <tr>
666 <td><p><a name="G-DATE-AUGUST:CAPS"></a><span class="term"><code class="literal">G_DATE_AUGUST</code></span></p></td>
667 <td>August
668 </td>
669 </tr>
670 <tr>
671 <td><p><a name="G-DATE-SEPTEMBER:CAPS"></a><span class="term"><code class="literal">G_DATE_SEPTEMBER</code></span></p></td>
672 <td>September
673 </td>
674 </tr>
675 <tr>
676 <td><p><a name="G-DATE-OCTOBER:CAPS"></a><span class="term"><code class="literal">G_DATE_OCTOBER</code></span></p></td>
677 <td>October
678 </td>
679 </tr>
680 <tr>
681 <td><p><a name="G-DATE-NOVEMBER:CAPS"></a><span class="term"><code class="literal">G_DATE_NOVEMBER</code></span></p></td>
682 <td>November
683 </td>
684 </tr>
685 <tr>
686 <td><p><a name="G-DATE-DECEMBER:CAPS"></a><span class="term"><code class="literal">G_DATE_DECEMBER</code></span></p></td>
687 <td>December
688 </td>
689 </tr>
690 </tbody>
691 </table></div>
692 </div>
693 <hr>
694 <div class="refsect2">
695 <a name="GDateYear"></a><h3>GDateYear</h3>
696 <pre class="programlisting">typedef guint16 GDateYear;
697 </pre>
698 <p>
699 Integer representing a year; <a class="link" href="glib-Date-and-Time-Functions.html#G-DATE-BAD-YEAR:CAPS" title="G_DATE_BAD_YEAR"><span class="type">G_DATE_BAD_YEAR</span></a> is the invalid
700 value. The year must be 1 or higher; negative (BC) years are not
701 allowed. The year is represented with four digits.
702 </p>
703 </div>
704 <hr>
705 <div class="refsect2">
706 <a name="GDateWeekday"></a><h3>enum GDateWeekday</h3>
707 <pre class="programlisting">typedef enum {
708   G_DATE_BAD_WEEKDAY  = 0,
709   G_DATE_MONDAY       = 1,
710   G_DATE_TUESDAY      = 2,
711   G_DATE_WEDNESDAY    = 3,
712   G_DATE_THURSDAY     = 4,
713   G_DATE_FRIDAY       = 5,
714   G_DATE_SATURDAY     = 6,
715   G_DATE_SUNDAY       = 7
716 } GDateWeekday;
717 </pre>
718 <p>
719 Enumeration representing a day of the week; <a class="link" href="glib-Date-and-Time-Functions.html#G-DATE-MONDAY:CAPS"><span class="type">G_DATE_MONDAY</span></a>,
720 <a class="link" href="glib-Date-and-Time-Functions.html#G-DATE-TUESDAY:CAPS"><span class="type">G_DATE_TUESDAY</span></a>, etc. <a class="link" href="glib-Date-and-Time-Functions.html#G-DATE-BAD-WEEKDAY:CAPS"><span class="type">G_DATE_BAD_WEEKDAY</span></a> is an invalid weekday.
721 </p>
722 <div class="variablelist"><table border="0">
723 <col align="left" valign="top">
724 <tbody>
725 <tr>
726 <td><p><a name="G-DATE-BAD-WEEKDAY:CAPS"></a><span class="term"><code class="literal">G_DATE_BAD_WEEKDAY</code></span></p></td>
727 <td>invalid value
728 </td>
729 </tr>
730 <tr>
731 <td><p><a name="G-DATE-MONDAY:CAPS"></a><span class="term"><code class="literal">G_DATE_MONDAY</code></span></p></td>
732 <td>Monday
733 </td>
734 </tr>
735 <tr>
736 <td><p><a name="G-DATE-TUESDAY:CAPS"></a><span class="term"><code class="literal">G_DATE_TUESDAY</code></span></p></td>
737 <td>Tuesday
738 </td>
739 </tr>
740 <tr>
741 <td><p><a name="G-DATE-WEDNESDAY:CAPS"></a><span class="term"><code class="literal">G_DATE_WEDNESDAY</code></span></p></td>
742 <td>Wednesday
743 </td>
744 </tr>
745 <tr>
746 <td><p><a name="G-DATE-THURSDAY:CAPS"></a><span class="term"><code class="literal">G_DATE_THURSDAY</code></span></p></td>
747 <td>Thursday
748 </td>
749 </tr>
750 <tr>
751 <td><p><a name="G-DATE-FRIDAY:CAPS"></a><span class="term"><code class="literal">G_DATE_FRIDAY</code></span></p></td>
752 <td>Friday
753 </td>
754 </tr>
755 <tr>
756 <td><p><a name="G-DATE-SATURDAY:CAPS"></a><span class="term"><code class="literal">G_DATE_SATURDAY</code></span></p></td>
757 <td>Saturday
758 </td>
759 </tr>
760 <tr>
761 <td><p><a name="G-DATE-SUNDAY:CAPS"></a><span class="term"><code class="literal">G_DATE_SUNDAY</code></span></p></td>
762 <td>Sunday
763 </td>
764 </tr>
765 </tbody>
766 </table></div>
767 </div>
768 <hr>
769 <div class="refsect2">
770 <a name="G-DATE-BAD-DAY:CAPS"></a><h3>G_DATE_BAD_DAY</h3>
771 <pre class="programlisting">#define G_DATE_BAD_DAY    0U
772 </pre>
773 <p>
774 Represents an invalid <a class="link" href="glib-Date-and-Time-Functions.html#GDateDay" title="GDateDay"><span class="type">GDateDay</span></a>.
775 </p>
776 </div>
777 <hr>
778 <div class="refsect2">
779 <a name="G-DATE-BAD-JULIAN:CAPS"></a><h3>G_DATE_BAD_JULIAN</h3>
780 <pre class="programlisting">#define G_DATE_BAD_JULIAN 0U
781 </pre>
782 <p>
783 Represents an invalid Julian day number.
784 </p>
785 </div>
786 <hr>
787 <div class="refsect2">
788 <a name="G-DATE-BAD-YEAR:CAPS"></a><h3>G_DATE_BAD_YEAR</h3>
789 <pre class="programlisting">#define G_DATE_BAD_YEAR   0U
790 </pre>
791 <p>
792 Represents an invalid year.
793 </p>
794 </div>
795 <hr>
796 <div class="refsect2">
797 <a name="g-date-new"></a><h3>g_date_new ()</h3>
798 <pre class="programlisting"><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="returnvalue">GDate</span></a> *             g_date_new                          (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
799 <p>
800 Allocates a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> and initializes
801 it to a sane state. The new date will
802 be cleared (as if you'd called <a class="link" href="glib-Date-and-Time-Functions.html#g-date-clear" title="g_date_clear ()"><code class="function">g_date_clear()</code></a>) but invalid (it won't
803 represent an existing day). Free the return value with <a class="link" href="glib-Date-and-Time-Functions.html#g-date-free" title="g_date_free ()"><code class="function">g_date_free()</code></a>.
804 </p>
805 <div class="variablelist"><table border="0">
806 <col align="left" valign="top">
807 <tbody><tr>
808 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
809 <td>a newly-allocated <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a>
810 </td>
811 </tr></tbody>
812 </table></div>
813 </div>
814 <hr>
815 <div class="refsect2">
816 <a name="g-date-new-dmy"></a><h3>g_date_new_dmy ()</h3>
817 <pre class="programlisting"><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="returnvalue">GDate</span></a> *             g_date_new_dmy                      (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateDay" title="GDateDay"><span class="type">GDateDay</span></a> day</code></em>,
818                                                          <em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateMonth" title="enum GDateMonth"><span class="type">GDateMonth</span></a> month</code></em>,
819                                                          <em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateYear" title="GDateYear"><span class="type">GDateYear</span></a> year</code></em>);</pre>
820 <p>
821 Like <a class="link" href="glib-Date-and-Time-Functions.html#g-date-new" title="g_date_new ()"><code class="function">g_date_new()</code></a>, but also sets the value of the date. Assuming the
822 day-month-year triplet you pass in represents an existing day, the
823 returned date will be valid.
824 </p>
825 <div class="variablelist"><table border="0">
826 <col align="left" valign="top">
827 <tbody>
828 <tr>
829 <td><p><span class="term"><em class="parameter"><code>day</code></em> :</span></p></td>
830 <td>day of the month</td>
831 </tr>
832 <tr>
833 <td><p><span class="term"><em class="parameter"><code>month</code></em> :</span></p></td>
834 <td>month of the year</td>
835 </tr>
836 <tr>
837 <td><p><span class="term"><em class="parameter"><code>year</code></em> :</span></p></td>
838 <td>year</td>
839 </tr>
840 <tr>
841 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
842 <td>a newly-allocated <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> initialized with <em class="parameter"><code>day</code></em>, <em class="parameter"><code>month</code></em>, and <em class="parameter"><code>year</code></em>
843 </td>
844 </tr>
845 </tbody>
846 </table></div>
847 </div>
848 <hr>
849 <div class="refsect2">
850 <a name="g-date-new-julian"></a><h3>g_date_new_julian ()</h3>
851 <pre class="programlisting"><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="returnvalue">GDate</span></a> *             g_date_new_julian                   (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint32" title="guint32"><span class="type">guint32</span></a> julian_day</code></em>);</pre>
852 <p>
853 Like <a class="link" href="glib-Date-and-Time-Functions.html#g-date-new" title="g_date_new ()"><code class="function">g_date_new()</code></a>, but also sets the value of the date. Assuming the
854 Julian day number you pass in is valid (greater than 0, less than an
855 unreasonably large number), the returned date will be valid.
856 </p>
857 <div class="variablelist"><table border="0">
858 <col align="left" valign="top">
859 <tbody>
860 <tr>
861 <td><p><span class="term"><em class="parameter"><code>julian_day</code></em> :</span></p></td>
862 <td>days since January 1, Year 1</td>
863 </tr>
864 <tr>
865 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
866 <td>a newly-allocated <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> initialized with <em class="parameter"><code>julian_day</code></em>
867 </td>
868 </tr>
869 </tbody>
870 </table></div>
871 </div>
872 <hr>
873 <div class="refsect2">
874 <a name="g-date-clear"></a><h3>g_date_clear ()</h3>
875 <pre class="programlisting"><span class="returnvalue">void</span>                g_date_clear                        (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
876                                                          <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> n_dates</code></em>);</pre>
877 <p>
878 Initializes one or more <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> structs to a sane but invalid
879 state. The cleared dates will not represent an existing date, but will
880 not contain garbage. Useful to init a date declared on the stack.
881 Validity can be tested with <a class="link" href="glib-Date-and-Time-Functions.html#g-date-valid" title="g_date_valid ()"><code class="function">g_date_valid()</code></a>.
882 </p>
883 <div class="variablelist"><table border="0">
884 <col align="left" valign="top">
885 <tbody>
886 <tr>
887 <td><p><span class="term"><em class="parameter"><code>date</code></em> :</span></p></td>
888 <td>pointer to one or more dates to clear</td>
889 </tr>
890 <tr>
891 <td><p><span class="term"><em class="parameter"><code>n_dates</code></em> :</span></p></td>
892 <td>number of dates to clear</td>
893 </tr>
894 </tbody>
895 </table></div>
896 </div>
897 <hr>
898 <div class="refsect2">
899 <a name="g-date-free"></a><h3>g_date_free ()</h3>
900 <pre class="programlisting"><span class="returnvalue">void</span>                g_date_free                         (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>);</pre>
901 <p>
902 Frees a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> returned from <a class="link" href="glib-Date-and-Time-Functions.html#g-date-new" title="g_date_new ()"><code class="function">g_date_new()</code></a>.
903 </p>
904 <div class="variablelist"><table border="0">
905 <col align="left" valign="top">
906 <tbody><tr>
907 <td><p><span class="term"><em class="parameter"><code>date</code></em> :</span></p></td>
908 <td>a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> to free</td>
909 </tr></tbody>
910 </table></div>
911 </div>
912 <hr>
913 <div class="refsect2">
914 <a name="g-date-set-day"></a><h3>g_date_set_day ()</h3>
915 <pre class="programlisting"><span class="returnvalue">void</span>                g_date_set_day                      (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
916                                                          <em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateDay" title="GDateDay"><span class="type">GDateDay</span></a> day</code></em>);</pre>
917 <p>
918 Sets the day of the month for a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a>. If the resulting
919 day-month-year triplet is invalid, the date will be invalid.
920 </p>
921 <div class="variablelist"><table border="0">
922 <col align="left" valign="top">
923 <tbody>
924 <tr>
925 <td><p><span class="term"><em class="parameter"><code>date</code></em> :</span></p></td>
926 <td>a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a>
927 </td>
928 </tr>
929 <tr>
930 <td><p><span class="term"><em class="parameter"><code>day</code></em> :</span></p></td>
931 <td>day to set</td>
932 </tr>
933 </tbody>
934 </table></div>
935 </div>
936 <hr>
937 <div class="refsect2">
938 <a name="g-date-set-month"></a><h3>g_date_set_month ()</h3>
939 <pre class="programlisting"><span class="returnvalue">void</span>                g_date_set_month                    (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
940                                                          <em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateMonth" title="enum GDateMonth"><span class="type">GDateMonth</span></a> month</code></em>);</pre>
941 <p>
942 Sets the month of the year for a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a>.  If the resulting
943 day-month-year triplet is invalid, the date will be invalid.
944 </p>
945 <div class="variablelist"><table border="0">
946 <col align="left" valign="top">
947 <tbody>
948 <tr>
949 <td><p><span class="term"><em class="parameter"><code>date</code></em> :</span></p></td>
950 <td>a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a>
951 </td>
952 </tr>
953 <tr>
954 <td><p><span class="term"><em class="parameter"><code>month</code></em> :</span></p></td>
955 <td>month to set</td>
956 </tr>
957 </tbody>
958 </table></div>
959 </div>
960 <hr>
961 <div class="refsect2">
962 <a name="g-date-set-year"></a><h3>g_date_set_year ()</h3>
963 <pre class="programlisting"><span class="returnvalue">void</span>                g_date_set_year                     (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
964                                                          <em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateYear" title="GDateYear"><span class="type">GDateYear</span></a> year</code></em>);</pre>
965 <p>
966 Sets the year for a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a>. If the resulting day-month-year
967 triplet is invalid, the date will be invalid.
968 </p>
969 <div class="variablelist"><table border="0">
970 <col align="left" valign="top">
971 <tbody>
972 <tr>
973 <td><p><span class="term"><em class="parameter"><code>date</code></em> :</span></p></td>
974 <td>a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a>
975 </td>
976 </tr>
977 <tr>
978 <td><p><span class="term"><em class="parameter"><code>year</code></em> :</span></p></td>
979 <td>year to set</td>
980 </tr>
981 </tbody>
982 </table></div>
983 </div>
984 <hr>
985 <div class="refsect2">
986 <a name="g-date-set-dmy"></a><h3>g_date_set_dmy ()</h3>
987 <pre class="programlisting"><span class="returnvalue">void</span>                g_date_set_dmy                      (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
988                                                          <em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateDay" title="GDateDay"><span class="type">GDateDay</span></a> day</code></em>,
989                                                          <em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateMonth" title="enum GDateMonth"><span class="type">GDateMonth</span></a> month</code></em>,
990                                                          <em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateYear" title="GDateYear"><span class="type">GDateYear</span></a> y</code></em>);</pre>
991 <p>
992 Sets the value of a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> from a day, month, and year.
993 The day-month-year triplet must be valid; if you aren't
994 sure it is, call <a class="link" href="glib-Date-and-Time-Functions.html#g-date-valid-dmy" title="g_date_valid_dmy ()"><code class="function">g_date_valid_dmy()</code></a> to check before you
995 set it.
996 </p>
997 <div class="variablelist"><table border="0">
998 <col align="left" valign="top">
999 <tbody>
1000 <tr>
1001 <td><p><span class="term"><em class="parameter"><code>date</code></em> :</span></p></td>
1002 <td>a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a>
1003 </td>
1004 </tr>
1005 <tr>
1006 <td><p><span class="term"><em class="parameter"><code>day</code></em> :</span></p></td>
1007 <td>day</td>
1008 </tr>
1009 <tr>
1010 <td><p><span class="term"><em class="parameter"><code>month</code></em> :</span></p></td>
1011 <td>month</td>
1012 </tr>
1013 <tr>
1014 <td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
1015 <td>year</td>
1016 </tr>
1017 </tbody>
1018 </table></div>
1019 </div>
1020 <hr>
1021 <div class="refsect2">
1022 <a name="g-date-set-julian"></a><h3>g_date_set_julian ()</h3>
1023 <pre class="programlisting"><span class="returnvalue">void</span>                g_date_set_julian                   (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
1024                                                          <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint32" title="guint32"><span class="type">guint32</span></a> julian_date</code></em>);</pre>
1025 <p>
1026 Sets the value of a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> from a Julian day number.
1027 </p>
1028 <div class="variablelist"><table border="0">
1029 <col align="left" valign="top">
1030 <tbody>
1031 <tr>
1032 <td><p><span class="term"><em class="parameter"><code>date</code></em> :</span></p></td>
1033 <td>a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a>
1034 </td>
1035 </tr>
1036 <tr>
1037 <td><p><span class="term"><em class="parameter"><code>julian_date</code></em> :</span></p></td>
1038 <td>Julian day number (days since January 1, Year 1)</td>
1039 </tr>
1040 </tbody>
1041 </table></div>
1042 </div>
1043 <hr>
1044 <div class="refsect2">
1045 <a name="g-date-set-time"></a><h3>g_date_set_time ()</h3>
1046 <pre class="programlisting"><span class="returnvalue">void</span>                g_date_set_time                     (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
1047                                                          <em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GTime" title="GTime"><span class="type">GTime</span></a> time_</code></em>);</pre>
1048 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
1049 <h3 class="title">Warning</h3>
1050 <p><code class="literal">g_date_set_time</code> has been deprecated since version 2.10 and should not be used in newly-written code. Use <a class="link" href="glib-Date-and-Time-Functions.html#g-date-set-time-t" title="g_date_set_time_t ()"><code class="function">g_date_set_time_t()</code></a> instead.</p>
1051 </div>
1052 <p>
1053 Sets the value of a date from a <a class="link" href="glib-Date-and-Time-Functions.html#GTime" title="GTime"><span class="type">GTime</span></a> value.
1054 The time to date conversion is done using the user's current timezone.
1055 </p>
1056 <div class="variablelist"><table border="0">
1057 <col align="left" valign="top">
1058 <tbody>
1059 <tr>
1060 <td><p><span class="term"><em class="parameter"><code>date</code></em> :</span></p></td>
1061 <td>a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a>.</td>
1062 </tr>
1063 <tr>
1064 <td><p><span class="term"><em class="parameter"><code>time_</code></em> :</span></p></td>
1065 <td>
1066 <a class="link" href="glib-Date-and-Time-Functions.html#GTime" title="GTime"><span class="type">GTime</span></a> value to set.</td>
1067 </tr>
1068 </tbody>
1069 </table></div>
1070 </div>
1071 <hr>
1072 <div class="refsect2">
1073 <a name="g-date-set-time-t"></a><h3>g_date_set_time_t ()</h3>
1074 <pre class="programlisting"><span class="returnvalue">void</span>                g_date_set_time_t                   (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
1075                                                          <em class="parameter"><code><span class="type">time_t</span> timet</code></em>);</pre>
1076 <p>
1077 Sets the value of a date to the date corresponding to a time 
1078 specified as a time_t. The time to date conversion is done using 
1079 the user's current timezone.
1080 </p>
1081 <p>
1082 To set the value of a date to the current day, you could write:
1083 </p>
1084 <div class="informalexample">
1085   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
1086     <tbody>
1087       <tr>
1088         <td class="listing_lines" align="right"><pre>1</pre></td>
1089         <td class="listing_code"><pre class="programlisting"><span class="function"><a href="glib-Date-and-Time-Functions.html#g-date-set-time-t">g_date_set_time_t</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">date</span><span class="symbol">,</span><span class="normal"> </span><span class="function">time</span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">));</span></pre></td>
1090       </tr>
1091     </tbody>
1092   </table>
1093 </div>
1094
1095 <p>
1096 </p>
1097 <div class="variablelist"><table border="0">
1098 <col align="left" valign="top">
1099 <tbody>
1100 <tr>
1101 <td><p><span class="term"><em class="parameter"><code>date</code></em> :</span></p></td>
1102 <td>a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a>
1103 </td>
1104 </tr>
1105 <tr>
1106 <td><p><span class="term"><em class="parameter"><code>timet</code></em> :</span></p></td>
1107 <td>
1108 <span class="type">time_t</span> value to set</td>
1109 </tr>
1110 </tbody>
1111 </table></div>
1112 <p class="since">Since 2.10</p>
1113 </div>
1114 <hr>
1115 <div class="refsect2">
1116 <a name="g-date-set-time-val"></a><h3>g_date_set_time_val ()</h3>
1117 <pre class="programlisting"><span class="returnvalue">void</span>                g_date_set_time_val                 (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
1118                                                          <em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GTimeVal" title="struct GTimeVal"><span class="type">GTimeVal</span></a> *timeval</code></em>);</pre>
1119 <p>
1120 Sets the value of a date from a <a class="link" href="glib-Date-and-Time-Functions.html#GTimeVal" title="struct GTimeVal"><span class="type">GTimeVal</span></a> value.  Note that the
1121 <em class="parameter"><code>tv_usec</code></em> member is ignored, because <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> can't make use of the
1122 additional precision.
1123 </p>
1124 <p>
1125 The time to date conversion is done using the user's current timezone.
1126 </p>
1127 <div class="variablelist"><table border="0">
1128 <col align="left" valign="top">
1129 <tbody>
1130 <tr>
1131 <td><p><span class="term"><em class="parameter"><code>date</code></em> :</span></p></td>
1132 <td>a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a>
1133 </td>
1134 </tr>
1135 <tr>
1136 <td><p><span class="term"><em class="parameter"><code>timeval</code></em> :</span></p></td>
1137 <td>
1138 <a class="link" href="glib-Date-and-Time-Functions.html#GTimeVal" title="struct GTimeVal"><span class="type">GTimeVal</span></a> value to set</td>
1139 </tr>
1140 </tbody>
1141 </table></div>
1142 <p class="since">Since 2.10</p>
1143 </div>
1144 <hr>
1145 <div class="refsect2">
1146 <a name="g-date-set-parse"></a><h3>g_date_set_parse ()</h3>
1147 <pre class="programlisting"><span class="returnvalue">void</span>                g_date_set_parse                    (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
1148                                                          <em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *str</code></em>);</pre>
1149 <p>
1150 Parses a user-inputted string <em class="parameter"><code>str</code></em>, and try to figure out what date it
1151 represents, taking the <a class="link" href="glib-running.html#setlocale" title="Locale">current locale</a>
1152 into account. If the string is successfully parsed, the date will be
1153 valid after the call. Otherwise, it will be invalid. You should check
1154 using <a class="link" href="glib-Date-and-Time-Functions.html#g-date-valid" title="g_date_valid ()"><code class="function">g_date_valid()</code></a> to see whether the parsing succeeded.
1155 </p>
1156 <p>
1157 This function is not appropriate for file formats and the like; it
1158 isn't very precise, and its exact behavior varies with the locale.
1159 It's intended to be a heuristic routine that guesses what the user
1160 means by a given string (and it does work pretty well in that
1161 capacity).
1162 </p>
1163 <div class="variablelist"><table border="0">
1164 <col align="left" valign="top">
1165 <tbody>
1166 <tr>
1167 <td><p><span class="term"><em class="parameter"><code>date</code></em> :</span></p></td>
1168 <td>a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> to fill in</td>
1169 </tr>
1170 <tr>
1171 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
1172 <td>string to parse</td>
1173 </tr>
1174 </tbody>
1175 </table></div>
1176 </div>
1177 <hr>
1178 <div class="refsect2">
1179 <a name="g-date-add-days"></a><h3>g_date_add_days ()</h3>
1180 <pre class="programlisting"><span class="returnvalue">void</span>                g_date_add_days                     (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
1181                                                          <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> n_days</code></em>);</pre>
1182 <p>
1183 Increments a date some number of days.
1184 To move forward by weeks, add weeks*7 days.
1185 The date must be valid.
1186 </p>
1187 <div class="variablelist"><table border="0">
1188 <col align="left" valign="top">
1189 <tbody>
1190 <tr>
1191 <td><p><span class="term"><em class="parameter"><code>date</code></em> :</span></p></td>
1192 <td>a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> to increment</td>
1193 </tr>
1194 <tr>
1195 <td><p><span class="term"><em class="parameter"><code>n_days</code></em> :</span></p></td>
1196 <td>number of days to move the date forward</td>
1197 </tr>
1198 </tbody>
1199 </table></div>
1200 </div>
1201 <hr>
1202 <div class="refsect2">
1203 <a name="g-date-subtract-days"></a><h3>g_date_subtract_days ()</h3>
1204 <pre class="programlisting"><span class="returnvalue">void</span>                g_date_subtract_days                (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
1205                                                          <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> n_days</code></em>);</pre>
1206 <p>
1207 Moves a date some number of days into the past.
1208 To move by weeks, just move by weeks*7 days.
1209 The date must be valid.
1210 </p>
1211 <div class="variablelist"><table border="0">
1212 <col align="left" valign="top">
1213 <tbody>
1214 <tr>
1215 <td><p><span class="term"><em class="parameter"><code>date</code></em> :</span></p></td>
1216 <td>a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> to decrement</td>
1217 </tr>
1218 <tr>
1219 <td><p><span class="term"><em class="parameter"><code>n_days</code></em> :</span></p></td>
1220 <td>number of days to move</td>
1221 </tr>
1222 </tbody>
1223 </table></div>
1224 </div>
1225 <hr>
1226 <div class="refsect2">
1227 <a name="g-date-add-months"></a><h3>g_date_add_months ()</h3>
1228 <pre class="programlisting"><span class="returnvalue">void</span>                g_date_add_months                   (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
1229                                                          <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> n_months</code></em>);</pre>
1230 <p>
1231 Increments a date by some number of months.
1232 If the day of the month is greater than 28,
1233 this routine may change the day of the month
1234 (because the destination month may not have
1235 the current day in it). The date must be valid.
1236 </p>
1237 <div class="variablelist"><table border="0">
1238 <col align="left" valign="top">
1239 <tbody>
1240 <tr>
1241 <td><p><span class="term"><em class="parameter"><code>date</code></em> :</span></p></td>
1242 <td>a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> to increment</td>
1243 </tr>
1244 <tr>
1245 <td><p><span class="term"><em class="parameter"><code>n_months</code></em> :</span></p></td>
1246 <td>number of months to move forward</td>
1247 </tr>
1248 </tbody>
1249 </table></div>
1250 </div>
1251 <hr>
1252 <div class="refsect2">
1253 <a name="g-date-subtract-months"></a><h3>g_date_subtract_months ()</h3>
1254 <pre class="programlisting"><span class="returnvalue">void</span>                g_date_subtract_months              (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
1255                                                          <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> n_months</code></em>);</pre>
1256 <p>
1257 Moves a date some number of months into the past.
1258 If the current day of the month doesn't exist in
1259 the destination month, the day of the month
1260 may change. The date must be valid.
1261 </p>
1262 <div class="variablelist"><table border="0">
1263 <col align="left" valign="top">
1264 <tbody>
1265 <tr>
1266 <td><p><span class="term"><em class="parameter"><code>date</code></em> :</span></p></td>
1267 <td>a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> to decrement</td>
1268 </tr>
1269 <tr>
1270 <td><p><span class="term"><em class="parameter"><code>n_months</code></em> :</span></p></td>
1271 <td>number of months to move</td>
1272 </tr>
1273 </tbody>
1274 </table></div>
1275 </div>
1276 <hr>
1277 <div class="refsect2">
1278 <a name="g-date-add-years"></a><h3>g_date_add_years ()</h3>
1279 <pre class="programlisting"><span class="returnvalue">void</span>                g_date_add_years                    (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
1280                                                          <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> n_years</code></em>);</pre>
1281 <p>
1282 Increments a date by some number of years.
1283 If the date is February 29, and the destination
1284 year is not a leap year, the date will be changed
1285 to February 28. The date must be valid.
1286 </p>
1287 <div class="variablelist"><table border="0">
1288 <col align="left" valign="top">
1289 <tbody>
1290 <tr>
1291 <td><p><span class="term"><em class="parameter"><code>date</code></em> :</span></p></td>
1292 <td>a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> to increment</td>
1293 </tr>
1294 <tr>
1295 <td><p><span class="term"><em class="parameter"><code>n_years</code></em> :</span></p></td>
1296 <td>number of years to move forward</td>
1297 </tr>
1298 </tbody>
1299 </table></div>
1300 </div>
1301 <hr>
1302 <div class="refsect2">
1303 <a name="g-date-subtract-years"></a><h3>g_date_subtract_years ()</h3>
1304 <pre class="programlisting"><span class="returnvalue">void</span>                g_date_subtract_years               (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
1305                                                          <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> n_years</code></em>);</pre>
1306 <p>
1307 Moves a date some number of years into the past.
1308 If the current day doesn't exist in the destination
1309 year (i.e. it's February 29 and you move to a non-leap-year)
1310 then the day is changed to February 29. The date
1311 must be valid.
1312 </p>
1313 <div class="variablelist"><table border="0">
1314 <col align="left" valign="top">
1315 <tbody>
1316 <tr>
1317 <td><p><span class="term"><em class="parameter"><code>date</code></em> :</span></p></td>
1318 <td>a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> to decrement</td>
1319 </tr>
1320 <tr>
1321 <td><p><span class="term"><em class="parameter"><code>n_years</code></em> :</span></p></td>
1322 <td>number of years to move</td>
1323 </tr>
1324 </tbody>
1325 </table></div>
1326 </div>
1327 <hr>
1328 <div class="refsect2">
1329 <a name="g-date-days-between"></a><h3>g_date_days_between ()</h3>
1330 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a>                g_date_days_between                 (<em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date1</code></em>,
1331                                                          <em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date2</code></em>);</pre>
1332 <p>
1333 Computes the number of days between two dates.
1334 If <em class="parameter"><code>date2</code></em> is prior to <em class="parameter"><code>date1</code></em>, the returned value is negative.
1335 Both dates must be valid.
1336 </p>
1337 <div class="variablelist"><table border="0">
1338 <col align="left" valign="top">
1339 <tbody>
1340 <tr>
1341 <td><p><span class="term"><em class="parameter"><code>date1</code></em> :</span></p></td>
1342 <td>the first date</td>
1343 </tr>
1344 <tr>
1345 <td><p><span class="term"><em class="parameter"><code>date2</code></em> :</span></p></td>
1346 <td>the second date</td>
1347 </tr>
1348 <tr>
1349 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1350 <td>the number of days between <em class="parameter"><code>date1</code></em> and <em class="parameter"><code>date2</code></em>
1351 </td>
1352 </tr>
1353 </tbody>
1354 </table></div>
1355 </div>
1356 <hr>
1357 <div class="refsect2">
1358 <a name="g-date-compare"></a><h3>g_date_compare ()</h3>
1359 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a>                g_date_compare                      (<em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *lhs</code></em>,
1360                                                          <em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *rhs</code></em>);</pre>
1361 <p>
1362 <code class="function">qsort()</code>-style comparison function for dates.
1363 Both dates must be valid.
1364 </p>
1365 <div class="variablelist"><table border="0">
1366 <col align="left" valign="top">
1367 <tbody>
1368 <tr>
1369 <td><p><span class="term"><em class="parameter"><code>lhs</code></em> :</span></p></td>
1370 <td>first date to compare</td>
1371 </tr>
1372 <tr>
1373 <td><p><span class="term"><em class="parameter"><code>rhs</code></em> :</span></p></td>
1374 <td>second date to compare</td>
1375 </tr>
1376 <tr>
1377 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1378 <td>0 for equal, less than zero if <em class="parameter"><code>lhs</code></em> is less than <em class="parameter"><code>rhs</code></em>,
1379 greater than zero if <em class="parameter"><code>lhs</code></em> is greater than <em class="parameter"><code>rhs</code></em>
1380 </td>
1381 </tr>
1382 </tbody>
1383 </table></div>
1384 </div>
1385 <hr>
1386 <div class="refsect2">
1387 <a name="g-date-clamp"></a><h3>g_date_clamp ()</h3>
1388 <pre class="programlisting"><span class="returnvalue">void</span>                g_date_clamp                        (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
1389                                                          <em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *min_date</code></em>,
1390                                                          <em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *max_date</code></em>);</pre>
1391 <p>
1392 If <em class="parameter"><code>date</code></em> is prior to <em class="parameter"><code>min_date</code></em>, sets <em class="parameter"><code>date</code></em> equal to <em class="parameter"><code>min_date</code></em>.
1393 If <em class="parameter"><code>date</code></em> falls after <em class="parameter"><code>max_date</code></em>, sets <em class="parameter"><code>date</code></em> equal to <em class="parameter"><code>max_date</code></em>.
1394 Otherwise, <em class="parameter"><code>date</code></em> is unchanged.
1395 Either of <em class="parameter"><code>min_date</code></em> and <em class="parameter"><code>max_date</code></em> may be <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>.
1396 All non-<a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> dates must be valid.
1397 </p>
1398 <div class="variablelist"><table border="0">
1399 <col align="left" valign="top">
1400 <tbody>
1401 <tr>
1402 <td><p><span class="term"><em class="parameter"><code>date</code></em> :</span></p></td>
1403 <td>a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> to clamp</td>
1404 </tr>
1405 <tr>
1406 <td><p><span class="term"><em class="parameter"><code>min_date</code></em> :</span></p></td>
1407 <td>minimum accepted value for <em class="parameter"><code>date</code></em>
1408 </td>
1409 </tr>
1410 <tr>
1411 <td><p><span class="term"><em class="parameter"><code>max_date</code></em> :</span></p></td>
1412 <td>maximum accepted value for <em class="parameter"><code>date</code></em>
1413 </td>
1414 </tr>
1415 </tbody>
1416 </table></div>
1417 </div>
1418 <hr>
1419 <div class="refsect2">
1420 <a name="g-date-order"></a><h3>g_date_order ()</h3>
1421 <pre class="programlisting"><span class="returnvalue">void</span>                g_date_order                        (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date1</code></em>,
1422                                                          <em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date2</code></em>);</pre>
1423 <p>
1424 Checks if <em class="parameter"><code>date1</code></em> is less than or equal to <em class="parameter"><code>date2</code></em>,
1425 and swap the values if this is not the case.
1426 </p>
1427 <div class="variablelist"><table border="0">
1428 <col align="left" valign="top">
1429 <tbody>
1430 <tr>
1431 <td><p><span class="term"><em class="parameter"><code>date1</code></em> :</span></p></td>
1432 <td>the first date</td>
1433 </tr>
1434 <tr>
1435 <td><p><span class="term"><em class="parameter"><code>date2</code></em> :</span></p></td>
1436 <td>the second date</td>
1437 </tr>
1438 </tbody>
1439 </table></div>
1440 </div>
1441 <hr>
1442 <div class="refsect2">
1443 <a name="g-date-get-day"></a><h3>g_date_get_day ()</h3>
1444 <pre class="programlisting"><a class="link" href="glib-Date-and-Time-Functions.html#GDateDay" title="GDateDay"><span class="returnvalue">GDateDay</span></a>            g_date_get_day                      (<em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>);</pre>
1445 <p>
1446 Returns the day of the month. The date must be valid.
1447 </p>
1448 <div class="variablelist"><table border="0">
1449 <col align="left" valign="top">
1450 <tbody>
1451 <tr>
1452 <td><p><span class="term"><em class="parameter"><code>date</code></em> :</span></p></td>
1453 <td>a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> to extract the day of the month from</td>
1454 </tr>
1455 <tr>
1456 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1457 <td>day of the month</td>
1458 </tr>
1459 </tbody>
1460 </table></div>
1461 </div>
1462 <hr>
1463 <div class="refsect2">
1464 <a name="g-date-get-month"></a><h3>g_date_get_month ()</h3>
1465 <pre class="programlisting"><a class="link" href="glib-Date-and-Time-Functions.html#GDateMonth" title="enum GDateMonth"><span class="returnvalue">GDateMonth</span></a>          g_date_get_month                    (<em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>);</pre>
1466 <p>
1467 Returns the month of the year. The date must be valid.
1468 </p>
1469 <div class="variablelist"><table border="0">
1470 <col align="left" valign="top">
1471 <tbody>
1472 <tr>
1473 <td><p><span class="term"><em class="parameter"><code>date</code></em> :</span></p></td>
1474 <td>a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> to get the month from</td>
1475 </tr>
1476 <tr>
1477 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1478 <td>month of the year as a <a class="link" href="glib-Date-and-Time-Functions.html#GDateMonth" title="enum GDateMonth"><span class="type">GDateMonth</span></a>
1479 </td>
1480 </tr>
1481 </tbody>
1482 </table></div>
1483 </div>
1484 <hr>
1485 <div class="refsect2">
1486 <a name="g-date-get-year"></a><h3>g_date_get_year ()</h3>
1487 <pre class="programlisting"><a class="link" href="glib-Date-and-Time-Functions.html#GDateYear" title="GDateYear"><span class="returnvalue">GDateYear</span></a>           g_date_get_year                     (<em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>);</pre>
1488 <p>
1489 Returns the year of a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a>. The date must be valid.
1490 </p>
1491 <div class="variablelist"><table border="0">
1492 <col align="left" valign="top">
1493 <tbody>
1494 <tr>
1495 <td><p><span class="term"><em class="parameter"><code>date</code></em> :</span></p></td>
1496 <td>a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a>
1497 </td>
1498 </tr>
1499 <tr>
1500 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1501 <td>year in which the date falls</td>
1502 </tr>
1503 </tbody>
1504 </table></div>
1505 </div>
1506 <hr>
1507 <div class="refsect2">
1508 <a name="g-date-get-julian"></a><h3>g_date_get_julian ()</h3>
1509 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#guint32" title="guint32"><span class="returnvalue">guint32</span></a>             g_date_get_julian                   (<em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>);</pre>
1510 <p>
1511 Returns the Julian day or "serial number" of the <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a>. The
1512 Julian day is simply the number of days since January 1, Year 1; i.e.,
1513 January 1, Year 1 is Julian day 1; January 2, Year 1 is Julian day 2,
1514 etc. The date must be valid.
1515 </p>
1516 <div class="variablelist"><table border="0">
1517 <col align="left" valign="top">
1518 <tbody>
1519 <tr>
1520 <td><p><span class="term"><em class="parameter"><code>date</code></em> :</span></p></td>
1521 <td>a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> to extract the Julian day from</td>
1522 </tr>
1523 <tr>
1524 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1525 <td>Julian day</td>
1526 </tr>
1527 </tbody>
1528 </table></div>
1529 </div>
1530 <hr>
1531 <div class="refsect2">
1532 <a name="g-date-get-weekday"></a><h3>g_date_get_weekday ()</h3>
1533 <pre class="programlisting"><a class="link" href="glib-Date-and-Time-Functions.html#GDateWeekday" title="enum GDateWeekday"><span class="returnvalue">GDateWeekday</span></a>        g_date_get_weekday                  (<em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>);</pre>
1534 <p>
1535 Returns the day of the week for a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a>. The date must be valid.
1536 </p>
1537 <div class="variablelist"><table border="0">
1538 <col align="left" valign="top">
1539 <tbody>
1540 <tr>
1541 <td><p><span class="term"><em class="parameter"><code>date</code></em> :</span></p></td>
1542 <td>a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a>
1543 </td>
1544 </tr>
1545 <tr>
1546 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1547 <td>day of the week as a <a class="link" href="glib-Date-and-Time-Functions.html#GDateWeekday" title="enum GDateWeekday"><span class="type">GDateWeekday</span></a>.</td>
1548 </tr>
1549 </tbody>
1550 </table></div>
1551 </div>
1552 <hr>
1553 <div class="refsect2">
1554 <a name="g-date-get-day-of-year"></a><h3>g_date_get_day_of_year ()</h3>
1555 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a>               g_date_get_day_of_year              (<em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>);</pre>
1556 <p>
1557 Returns the day of the year, where Jan 1 is the first day of the
1558 year. The date must be valid.
1559 </p>
1560 <div class="variablelist"><table border="0">
1561 <col align="left" valign="top">
1562 <tbody>
1563 <tr>
1564 <td><p><span class="term"><em class="parameter"><code>date</code></em> :</span></p></td>
1565 <td>a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> to extract day of year from</td>
1566 </tr>
1567 <tr>
1568 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1569 <td>day of the year</td>
1570 </tr>
1571 </tbody>
1572 </table></div>
1573 </div>
1574 <hr>
1575 <div class="refsect2">
1576 <a name="g-date-get-days-in-month"></a><h3>g_date_get_days_in_month ()</h3>
1577 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#guint8" title="guint8"><span class="returnvalue">guint8</span></a>              g_date_get_days_in_month            (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateMonth" title="enum GDateMonth"><span class="type">GDateMonth</span></a> month</code></em>,
1578                                                          <em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateYear" title="GDateYear"><span class="type">GDateYear</span></a> year</code></em>);</pre>
1579 <p>
1580 Returns the number of days in a month, taking leap
1581 years into account.
1582 </p>
1583 <div class="variablelist"><table border="0">
1584 <col align="left" valign="top">
1585 <tbody>
1586 <tr>
1587 <td><p><span class="term"><em class="parameter"><code>month</code></em> :</span></p></td>
1588 <td>month</td>
1589 </tr>
1590 <tr>
1591 <td><p><span class="term"><em class="parameter"><code>year</code></em> :</span></p></td>
1592 <td>year</td>
1593 </tr>
1594 <tr>
1595 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1596 <td>number of days in <em class="parameter"><code>month</code></em> during the <em class="parameter"><code>year</code></em>
1597 </td>
1598 </tr>
1599 </tbody>
1600 </table></div>
1601 </div>
1602 <hr>
1603 <div class="refsect2">
1604 <a name="g-date-is-first-of-month"></a><h3>g_date_is_first_of_month ()</h3>
1605 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            g_date_is_first_of_month            (<em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>);</pre>
1606 <p>
1607 Returns <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the date is on the first of a month.
1608 The date must be valid.
1609 </p>
1610 <div class="variablelist"><table border="0">
1611 <col align="left" valign="top">
1612 <tbody>
1613 <tr>
1614 <td><p><span class="term"><em class="parameter"><code>date</code></em> :</span></p></td>
1615 <td>a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> to check</td>
1616 </tr>
1617 <tr>
1618 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1619 <td>
1620 <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the date is the first of the month</td>
1621 </tr>
1622 </tbody>
1623 </table></div>
1624 </div>
1625 <hr>
1626 <div class="refsect2">
1627 <a name="g-date-is-last-of-month"></a><h3>g_date_is_last_of_month ()</h3>
1628 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            g_date_is_last_of_month             (<em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>);</pre>
1629 <p>
1630 Returns <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the date is the last day of the month.
1631 The date must be valid.
1632 </p>
1633 <div class="variablelist"><table border="0">
1634 <col align="left" valign="top">
1635 <tbody>
1636 <tr>
1637 <td><p><span class="term"><em class="parameter"><code>date</code></em> :</span></p></td>
1638 <td>a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> to check</td>
1639 </tr>
1640 <tr>
1641 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1642 <td>
1643 <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the date is the last day of the month</td>
1644 </tr>
1645 </tbody>
1646 </table></div>
1647 </div>
1648 <hr>
1649 <div class="refsect2">
1650 <a name="g-date-is-leap-year"></a><h3>g_date_is_leap_year ()</h3>
1651 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            g_date_is_leap_year                 (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateYear" title="GDateYear"><span class="type">GDateYear</span></a> year</code></em>);</pre>
1652 <p>
1653 Returns <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the year is a leap year.
1654 <sup>[<a name="id651145" href="#ftn.id651145" class="footnote">5</a>]</sup>
1655 </p>
1656 <div class="variablelist"><table border="0">
1657 <col align="left" valign="top">
1658 <tbody>
1659 <tr>
1660 <td><p><span class="term"><em class="parameter"><code>year</code></em> :</span></p></td>
1661 <td>year to check</td>
1662 </tr>
1663 <tr>
1664 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1665 <td>
1666 <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the year is a leap year</td>
1667 </tr>
1668 </tbody>
1669 </table></div>
1670 </div>
1671 <hr>
1672 <div class="refsect2">
1673 <a name="g-date-get-monday-week-of-year"></a><h3>g_date_get_monday_week_of_year ()</h3>
1674 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a>               g_date_get_monday_week_of_year      (<em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>);</pre>
1675 <p>
1676 Returns the week of the year, where weeks are understood to start on
1677 Monday. If the date is before the first Monday of the year, return
1678 0. The date must be valid.
1679 </p>
1680 <div class="variablelist"><table border="0">
1681 <col align="left" valign="top">
1682 <tbody>
1683 <tr>
1684 <td><p><span class="term"><em class="parameter"><code>date</code></em> :</span></p></td>
1685 <td>a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a>
1686 </td>
1687 </tr>
1688 <tr>
1689 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1690 <td>week of the year</td>
1691 </tr>
1692 </tbody>
1693 </table></div>
1694 </div>
1695 <hr>
1696 <div class="refsect2">
1697 <a name="g-date-get-monday-weeks-in-year"></a><h3>g_date_get_monday_weeks_in_year ()</h3>
1698 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#guint8" title="guint8"><span class="returnvalue">guint8</span></a>              g_date_get_monday_weeks_in_year     (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateYear" title="GDateYear"><span class="type">GDateYear</span></a> year</code></em>);</pre>
1699 <p>
1700 Returns the number of weeks in the year, where weeks
1701 are taken to start on Monday. Will be 52 or 53. The
1702 date must be valid. (Years always have 52 7-day periods,
1703 plus 1 or 2 extra days depending on whether it's a leap
1704 year. This function is basically telling you how many
1705 Mondays are in the year, i.e. there are 53 Mondays if
1706 one of the extra days happens to be a Monday.)
1707 </p>
1708 <div class="variablelist"><table border="0">
1709 <col align="left" valign="top">
1710 <tbody>
1711 <tr>
1712 <td><p><span class="term"><em class="parameter"><code>year</code></em> :</span></p></td>
1713 <td>a year</td>
1714 </tr>
1715 <tr>
1716 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1717 <td>number of Mondays in the year</td>
1718 </tr>
1719 </tbody>
1720 </table></div>
1721 </div>
1722 <hr>
1723 <div class="refsect2">
1724 <a name="g-date-get-sunday-week-of-year"></a><h3>g_date_get_sunday_week_of_year ()</h3>
1725 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a>               g_date_get_sunday_week_of_year      (<em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>);</pre>
1726 <p>
1727 Returns the week of the year during which this date falls, if weeks
1728 are understood to being on Sunday. The date must be valid. Can return
1729 0 if the day is before the first Sunday of the year.
1730 </p>
1731 <div class="variablelist"><table border="0">
1732 <col align="left" valign="top">
1733 <tbody>
1734 <tr>
1735 <td><p><span class="term"><em class="parameter"><code>date</code></em> :</span></p></td>
1736 <td>a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a>
1737 </td>
1738 </tr>
1739 <tr>
1740 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1741 <td>week number</td>
1742 </tr>
1743 </tbody>
1744 </table></div>
1745 </div>
1746 <hr>
1747 <div class="refsect2">
1748 <a name="g-date-get-sunday-weeks-in-year"></a><h3>g_date_get_sunday_weeks_in_year ()</h3>
1749 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#guint8" title="guint8"><span class="returnvalue">guint8</span></a>              g_date_get_sunday_weeks_in_year     (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateYear" title="GDateYear"><span class="type">GDateYear</span></a> year</code></em>);</pre>
1750 <p>
1751 Returns the number of weeks in the year, where weeks
1752 are taken to start on Sunday. Will be 52 or 53. The
1753 date must be valid. (Years always have 52 7-day periods,
1754 plus 1 or 2 extra days depending on whether it's a leap
1755 year. This function is basically telling you how many
1756 Sundays are in the year, i.e. there are 53 Sundays if
1757 one of the extra days happens to be a Sunday.)
1758 </p>
1759 <div class="variablelist"><table border="0">
1760 <col align="left" valign="top">
1761 <tbody>
1762 <tr>
1763 <td><p><span class="term"><em class="parameter"><code>year</code></em> :</span></p></td>
1764 <td>year to count weeks in</td>
1765 </tr>
1766 <tr>
1767 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1768 <td>the number of weeks in <em class="parameter"><code>year</code></em>
1769 </td>
1770 </tr>
1771 </tbody>
1772 </table></div>
1773 </div>
1774 <hr>
1775 <div class="refsect2">
1776 <a name="g-date-get-iso8601-week-of-year"></a><h3>g_date_get_iso8601_week_of_year ()</h3>
1777 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a>               g_date_get_iso8601_week_of_year     (<em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>);</pre>
1778 <p>
1779 Returns the week of the year, where weeks are interpreted according
1780 to ISO 8601.
1781 </p>
1782 <div class="variablelist"><table border="0">
1783 <col align="left" valign="top">
1784 <tbody>
1785 <tr>
1786 <td><p><span class="term"><em class="parameter"><code>date</code></em> :</span></p></td>
1787 <td>a valid <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a>
1788 </td>
1789 </tr>
1790 <tr>
1791 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1792 <td>ISO 8601 week number of the year.</td>
1793 </tr>
1794 </tbody>
1795 </table></div>
1796 <p class="since">Since 2.6</p>
1797 </div>
1798 <hr>
1799 <div class="refsect2">
1800 <a name="g-date-strftime"></a><h3>g_date_strftime ()</h3>
1801 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gsize" title="gsize"><span class="returnvalue">gsize</span></a>               g_date_strftime                     (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *s</code></em>,
1802                                                          <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gsize" title="gsize"><span class="type">gsize</span></a> slen</code></em>,
1803                                                          <em class="parameter"><code>const <a class="link" href="glib-Basic-Types.html#gchar" title="gchar"><span class="type">gchar</span></a> *format</code></em>,
1804                                                          <em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>);</pre>
1805 <p>
1806 Generates a printed representation of the date, in a
1807 <a class="link" href="glib-running.html#setlocale" title="Locale">locale</a>-specific way.
1808 Works just like the platform's C library <code class="function">strftime()</code> function,
1809 but only accepts date-related formats; time-related formats
1810 give undefined results. Date must be valid. Unlike <code class="function">strftime()</code>
1811 (which uses the locale encoding), works on a UTF-8 format
1812 string and stores a UTF-8 result.
1813 </p>
1814 <p>
1815 This function does not provide any conversion specifiers in
1816 addition to those implemented by the platform's C library.
1817 For example, don't expect that using <a class="link" href="glib-Date-and-Time-Functions.html#g-date-strftime" title="g_date_strftime ()"><code class="function">g_date_strftime()</code></a> would
1818 make the %F provided by the C99 <code class="function">strftime()</code> work on Windows
1819 where the C library only complies to C89.
1820 </p>
1821 <div class="variablelist"><table border="0">
1822 <col align="left" valign="top">
1823 <tbody>
1824 <tr>
1825 <td><p><span class="term"><em class="parameter"><code>s</code></em> :</span></p></td>
1826 <td>destination buffer</td>
1827 </tr>
1828 <tr>
1829 <td><p><span class="term"><em class="parameter"><code>slen</code></em> :</span></p></td>
1830 <td>buffer size</td>
1831 </tr>
1832 <tr>
1833 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
1834 <td>format string</td>
1835 </tr>
1836 <tr>
1837 <td><p><span class="term"><em class="parameter"><code>date</code></em> :</span></p></td>
1838 <td>valid <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a>
1839 </td>
1840 </tr>
1841 <tr>
1842 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1843 <td>number of characters written to the buffer, or 0 the buffer was too small</td>
1844 </tr>
1845 </tbody>
1846 </table></div>
1847 </div>
1848 <hr>
1849 <div class="refsect2">
1850 <a name="g-date-to-struct-tm"></a><h3>g_date_to_struct_tm ()</h3>
1851 <pre class="programlisting"><span class="returnvalue">void</span>                g_date_to_struct_tm                 (<em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>,
1852                                                          <em class="parameter"><code><span class="type">struct tm</span> *tm</code></em>);</pre>
1853 <p>
1854 Fills in the date-related bits of a <span class="structname">struct tm</span>
1855 using the <em class="parameter"><code>date</code></em> value. Initializes the non-date parts with something
1856 sane but meaningless.
1857 </p>
1858 <div class="variablelist"><table border="0">
1859 <col align="left" valign="top">
1860 <tbody>
1861 <tr>
1862 <td><p><span class="term"><em class="parameter"><code>date</code></em> :</span></p></td>
1863 <td>a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> to set the <span class="structname">struct tm</span> from</td>
1864 </tr>
1865 <tr>
1866 <td><p><span class="term"><em class="parameter"><code>tm</code></em> :</span></p></td>
1867 <td>
1868 <span class="structname">struct tm</span> to fill</td>
1869 </tr>
1870 </tbody>
1871 </table></div>
1872 </div>
1873 <hr>
1874 <div class="refsect2">
1875 <a name="g-date-valid"></a><h3>g_date_valid ()</h3>
1876 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            g_date_valid                        (<em class="parameter"><code>const <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> *date</code></em>);</pre>
1877 <p>
1878 Returns <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> represents an existing day. The date must not
1879 contain garbage; it should have been initialized with <a class="link" href="glib-Date-and-Time-Functions.html#g-date-clear" title="g_date_clear ()"><code class="function">g_date_clear()</code></a>
1880 if it wasn't allocated by one of the <a class="link" href="glib-Date-and-Time-Functions.html#g-date-new" title="g_date_new ()"><code class="function">g_date_new()</code></a> variants.
1881 </p>
1882 <div class="variablelist"><table border="0">
1883 <col align="left" valign="top">
1884 <tbody>
1885 <tr>
1886 <td><p><span class="term"><em class="parameter"><code>date</code></em> :</span></p></td>
1887 <td>a <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> to check</td>
1888 </tr>
1889 <tr>
1890 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1891 <td>Whether the date is valid</td>
1892 </tr>
1893 </tbody>
1894 </table></div>
1895 </div>
1896 <hr>
1897 <div class="refsect2">
1898 <a name="g-date-valid-day"></a><h3>g_date_valid_day ()</h3>
1899 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            g_date_valid_day                    (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateDay" title="GDateDay"><span class="type">GDateDay</span></a> day</code></em>);</pre>
1900 <p>
1901 Returns <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the day of the month is valid (a day is valid if it's
1902 between 1 and 31 inclusive).
1903 </p>
1904 <div class="variablelist"><table border="0">
1905 <col align="left" valign="top">
1906 <tbody>
1907 <tr>
1908 <td><p><span class="term"><em class="parameter"><code>day</code></em> :</span></p></td>
1909 <td>day to check</td>
1910 </tr>
1911 <tr>
1912 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1913 <td>
1914 <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the day is valid</td>
1915 </tr>
1916 </tbody>
1917 </table></div>
1918 </div>
1919 <hr>
1920 <div class="refsect2">
1921 <a name="g-date-valid-month"></a><h3>g_date_valid_month ()</h3>
1922 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            g_date_valid_month                  (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateMonth" title="enum GDateMonth"><span class="type">GDateMonth</span></a> month</code></em>);</pre>
1923 <p>
1924 Returns <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the month value is valid. The 12 <a class="link" href="glib-Date-and-Time-Functions.html#GDateMonth" title="enum GDateMonth"><span class="type">GDateMonth</span></a>
1925 enumeration values are the only valid months.
1926 </p>
1927 <div class="variablelist"><table border="0">
1928 <col align="left" valign="top">
1929 <tbody>
1930 <tr>
1931 <td><p><span class="term"><em class="parameter"><code>month</code></em> :</span></p></td>
1932 <td>month</td>
1933 </tr>
1934 <tr>
1935 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1936 <td>
1937 <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the month is valid</td>
1938 </tr>
1939 </tbody>
1940 </table></div>
1941 </div>
1942 <hr>
1943 <div class="refsect2">
1944 <a name="g-date-valid-year"></a><h3>g_date_valid_year ()</h3>
1945 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            g_date_valid_year                   (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateYear" title="GDateYear"><span class="type">GDateYear</span></a> year</code></em>);</pre>
1946 <p>
1947 Returns <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the year is valid. Any year greater than 0 is valid,
1948 though there is a 16-bit limit to what <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> will understand.
1949 </p>
1950 <div class="variablelist"><table border="0">
1951 <col align="left" valign="top">
1952 <tbody>
1953 <tr>
1954 <td><p><span class="term"><em class="parameter"><code>year</code></em> :</span></p></td>
1955 <td>year</td>
1956 </tr>
1957 <tr>
1958 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1959 <td>
1960 <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the year is valid</td>
1961 </tr>
1962 </tbody>
1963 </table></div>
1964 </div>
1965 <hr>
1966 <div class="refsect2">
1967 <a name="g-date-valid-dmy"></a><h3>g_date_valid_dmy ()</h3>
1968 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            g_date_valid_dmy                    (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateDay" title="GDateDay"><span class="type">GDateDay</span></a> day</code></em>,
1969                                                          <em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateMonth" title="enum GDateMonth"><span class="type">GDateMonth</span></a> month</code></em>,
1970                                                          <em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateYear" title="GDateYear"><span class="type">GDateYear</span></a> year</code></em>);</pre>
1971 <p>
1972 Returns <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the day-month-year triplet forms a valid, existing day
1973 in the range of days <a class="link" href="glib-Date-and-Time-Functions.html#GDate" title="struct GDate"><span class="type">GDate</span></a> understands (Year 1 or later, no more than
1974 a few thousand years in the future).
1975 </p>
1976 <div class="variablelist"><table border="0">
1977 <col align="left" valign="top">
1978 <tbody>
1979 <tr>
1980 <td><p><span class="term"><em class="parameter"><code>day</code></em> :</span></p></td>
1981 <td>day</td>
1982 </tr>
1983 <tr>
1984 <td><p><span class="term"><em class="parameter"><code>month</code></em> :</span></p></td>
1985 <td>month</td>
1986 </tr>
1987 <tr>
1988 <td><p><span class="term"><em class="parameter"><code>year</code></em> :</span></p></td>
1989 <td>year</td>
1990 </tr>
1991 <tr>
1992 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1993 <td>
1994 <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the date is a valid one</td>
1995 </tr>
1996 </tbody>
1997 </table></div>
1998 </div>
1999 <hr>
2000 <div class="refsect2">
2001 <a name="g-date-valid-julian"></a><h3>g_date_valid_julian ()</h3>
2002 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            g_date_valid_julian                 (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint32" title="guint32"><span class="type">guint32</span></a> julian_date</code></em>);</pre>
2003 <p>
2004 Returns <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the Julian day is valid. Anything greater than zero
2005 is basically a valid Julian, though there is a 32-bit limit.
2006 </p>
2007 <div class="variablelist"><table border="0">
2008 <col align="left" valign="top">
2009 <tbody>
2010 <tr>
2011 <td><p><span class="term"><em class="parameter"><code>julian_date</code></em> :</span></p></td>
2012 <td>Julian day to check</td>
2013 </tr>
2014 <tr>
2015 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2016 <td>
2017 <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the Julian day is valid</td>
2018 </tr>
2019 </tbody>
2020 </table></div>
2021 </div>
2022 <hr>
2023 <div class="refsect2">
2024 <a name="g-date-valid-weekday"></a><h3>g_date_valid_weekday ()</h3>
2025 <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a>            g_date_valid_weekday                (<em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GDateWeekday" title="enum GDateWeekday"><span class="type">GDateWeekday</span></a> weekday</code></em>);</pre>
2026 <p>
2027 Returns <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the weekday is valid. The seven <a class="link" href="glib-Date-and-Time-Functions.html#GDateWeekday" title="enum GDateWeekday"><span class="type">GDateWeekday</span></a> enumeration
2028 values are the only valid weekdays.
2029 </p>
2030 <div class="variablelist"><table border="0">
2031 <col align="left" valign="top">
2032 <tbody>
2033 <tr>
2034 <td><p><span class="term"><em class="parameter"><code>weekday</code></em> :</span></p></td>
2035 <td>weekday</td>
2036 </tr>
2037 <tr>
2038 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2039 <td>
2040 <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the weekday is valid</td>
2041 </tr>
2042 </tbody>
2043 </table></div>
2044 </div>
2045 </div>
2046 <div class="footnotes">
2047 <br><hr width="100" align="left">
2048 <div class="footnote"><p><sup>[<a id="ftn.id651145" href="#id651145" class="para">5</a>] </sup>For the purposes of this function,
2049 leap year is every year divisible by 4 unless that year
2050 is divisible by 100. If it is divisible by 100 it would
2051 be a leap year only if that year is also divisible
2052 by 400.</p></div>
2053 </div>
2054 </div>
2055 <div class="footer">
2056 <hr>
2057           Generated by GTK-Doc V1.18</div>
2058 </body>
2059 </html>