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