1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
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">
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">
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>
43 <tr><td colspan="5" class="shortcuts">
44 <a href="#glib-Date-and-Time-Functions.synopsis" class="shortcut">Top</a>
46 <a href="#glib-Date-and-Time-Functions.description" class="shortcut">Description</a>
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>
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>
56 <td valign="top" align="right"></td>
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 <glib.h>
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_);
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>;
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>
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);
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);
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);
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);
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);
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);
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);
173 <div class="refsect1" title="Description">
174 <a name="glib-Date-and-Time-Functions.description"></a><h2>Description</h2>
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>.
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).
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.
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.
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>.
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
231 Number of microseconds in one second (1 million). This macro is provided for
236 <div class="refsect2" title="GTimeVal">
237 <a name="GTimeVal"></a><h3>GTimeVal</h3>
238 <pre class="programlisting">typedef struct {
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.
248 <div class="variablelist"><table border="0">
249 <col align="left" valign="top">
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>
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>
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>
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">
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.
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>
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
290 <div class="variablelist"><table border="0">
291 <col align="left" valign="top">
293 <td><p><span class="term"><em class="parameter"><code>microseconds</code></em> :</span></p></td>
294 <td>number of microseconds to pause
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>
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">
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>
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>
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>
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">
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
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>
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.
352 <p class="since">Since 2.12</p>
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>
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">
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>
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
377 <p class="since">Since 2.12</p>
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
389 guint julian : 1; /* julian is valid */
390 guint dmy : 1; /* dmy is valid */
392 /* DMY representation */
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,
409 <div class="variablelist"><table border="0">
410 <col align="left" valign="top">
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
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
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
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
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
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
448 <div class="refsect2" title="GTime">
449 <a name="GTime"></a><h3>GTime</h3>
450 <pre class="programlisting">typedef gint32 GTime;
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>.
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:
465 <div class="informalexample"><pre class="programlisting">
469 gtime = (GTime)ttime;
475 <div class="refsect2" title="enum GDateDMY">
476 <a name="GDateDMY"></a><h3>enum GDateDMY</h3>
477 <pre class="programlisting">typedef enum
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.
488 <div class="variablelist"><table border="0">
489 <col align="left" valign="top">
492 <td><p><a name="G-DATE-DAY:CAPS"></a><span class="term"><code class="literal">G_DATE_DAY</code></span></p></td>
497 <td><p><a name="G-DATE-MONTH:CAPS"></a><span class="term"><code class="literal">G_DATE_MONTH</code></span></p></td>
502 <td><p><a name="G-DATE-YEAR:CAPS"></a><span class="term"><code class="literal">G_DATE_YEAR</code></span></p></td>
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 */
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.
520 <div class="refsect2" title="enum GDateMonth">
521 <a name="GDateMonth"></a><h3>enum GDateMonth</h3>
522 <pre class="programlisting">typedef enum
524 G_DATE_BAD_MONTH = 0,
533 G_DATE_SEPTEMBER = 9,
535 G_DATE_NOVEMBER = 11,
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.
543 <div class="variablelist"><table border="0">
544 <col align="left" valign="top">
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>
552 <td><p><a name="G-DATE-JANUARY:CAPS"></a><span class="term"><code class="literal">G_DATE_JANUARY</code></span></p></td>
557 <td><p><a name="G-DATE-FEBRUARY:CAPS"></a><span class="term"><code class="literal">G_DATE_FEBRUARY</code></span></p></td>
562 <td><p><a name="G-DATE-MARCH:CAPS"></a><span class="term"><code class="literal">G_DATE_MARCH</code></span></p></td>
567 <td><p><a name="G-DATE-APRIL:CAPS"></a><span class="term"><code class="literal">G_DATE_APRIL</code></span></p></td>
572 <td><p><a name="G-DATE-MAY:CAPS"></a><span class="term"><code class="literal">G_DATE_MAY</code></span></p></td>
577 <td><p><a name="G-DATE-JUNE:CAPS"></a><span class="term"><code class="literal">G_DATE_JUNE</code></span></p></td>
582 <td><p><a name="G-DATE-JULY:CAPS"></a><span class="term"><code class="literal">G_DATE_JULY</code></span></p></td>
587 <td><p><a name="G-DATE-AUGUST:CAPS"></a><span class="term"><code class="literal">G_DATE_AUGUST</code></span></p></td>
592 <td><p><a name="G-DATE-SEPTEMBER:CAPS"></a><span class="term"><code class="literal">G_DATE_SEPTEMBER</code></span></p></td>
597 <td><p><a name="G-DATE-OCTOBER:CAPS"></a><span class="term"><code class="literal">G_DATE_OCTOBER</code></span></p></td>
602 <td><p><a name="G-DATE-NOVEMBER:CAPS"></a><span class="term"><code class="literal">G_DATE_NOVEMBER</code></span></p></td>
607 <td><p><a name="G-DATE-DECEMBER:CAPS"></a><span class="term"><code class="literal">G_DATE_DECEMBER</code></span></p></td>
615 <div class="refsect2" title="GDateYear">
616 <a name="GDateYear"></a><h3>GDateYear</h3>
617 <pre class="programlisting">typedef guint16 GDateYear;
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.
626 <div class="refsect2" title="enum GDateWeekday">
627 <a name="GDateWeekday"></a><h3>enum GDateWeekday</h3>
628 <pre class="programlisting">typedef enum
630 G_DATE_BAD_WEEKDAY = 0,
633 G_DATE_WEDNESDAY = 3,
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.
644 <div class="variablelist"><table border="0">
645 <col align="left" valign="top">
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>
653 <td><p><a name="G-DATE-MONDAY:CAPS"></a><span class="term"><code class="literal">G_DATE_MONDAY</code></span></p></td>
658 <td><p><a name="G-DATE-TUESDAY:CAPS"></a><span class="term"><code class="literal">G_DATE_TUESDAY</code></span></p></td>
663 <td><p><a name="G-DATE-WEDNESDAY:CAPS"></a><span class="term"><code class="literal">G_DATE_WEDNESDAY</code></span></p></td>
668 <td><p><a name="G-DATE-THURSDAY:CAPS"></a><span class="term"><code class="literal">G_DATE_THURSDAY</code></span></p></td>
673 <td><p><a name="G-DATE-FRIDAY:CAPS"></a><span class="term"><code class="literal">G_DATE_FRIDAY</code></span></p></td>
678 <td><p><a name="G-DATE-SATURDAY:CAPS"></a><span class="term"><code class="literal">G_DATE_SATURDAY</code></span></p></td>
683 <td><p><a name="G-DATE-SUNDAY:CAPS"></a><span class="term"><code class="literal">G_DATE_SUNDAY</code></span></p></td>
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
696 Represents an invalid <a class="link" href="glib-Date-and-Time-Functions.html#GDateDay" title="GDateDay"><span class="type">GDateDay</span></a>.
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
705 Represents an invalid Julian day number.
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
714 Represents an invalid year.
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>
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>.
726 <div class="variablelist"><table border="0">
727 <col align="left" valign="top">
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>
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>
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.
746 <div class="variablelist"><table border="0">
747 <col align="left" valign="top">
750 <td><p><span class="term"><em class="parameter"><code>day</code></em> :</span></p></td>
755 <td><p><span class="term"><em class="parameter"><code>month</code></em> :</span></p></td>
756 <td>month of the year
760 <td><p><span class="term"><em class="parameter"><code>year</code></em> :</span></p></td>
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>
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>
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.
781 <div class="variablelist"><table border="0">
782 <col align="left" valign="top">
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
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>
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>
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>.
808 <div class="variablelist"><table border="0">
809 <col align="left" valign="top">
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
817 <td><p><span class="term"><em class="parameter"><code>n_dates</code></em> :</span></p></td>
818 <td>number of dates to clear
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>
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>.
831 <div class="variablelist"><table border="0">
832 <col align="left" valign="top">
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>
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>
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.
849 <div class="variablelist"><table border="0">
850 <col align="left" valign="top">
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>
858 <td><p><span class="term"><em class="parameter"><code>day</code></em> :</span></p></td>
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>
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.
874 <div class="variablelist"><table border="0">
875 <col align="left" valign="top">
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>
883 <td><p><span class="term"><em class="parameter"><code>month</code></em> :</span></p></td>
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>
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.
899 <div class="variablelist"><table border="0">
900 <col align="left" valign="top">
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>
908 <td><p><span class="term"><em class="parameter"><code>year</code></em> :</span></p></td>
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>
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.
927 <div class="variablelist"><table border="0">
928 <col align="left" valign="top">
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>
936 <td><p><span class="term"><em class="parameter"><code>day</code></em> :</span></p></td>
941 <td><p><span class="term"><em class="parameter"><code>month</code></em> :</span></p></td>
946 <td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
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>
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.
961 <div class="variablelist"><table border="0">
962 <col align="left" valign="top">
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>
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)
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>
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">
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>.
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.
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>
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.
1016 To set the value of a date to the current day, you could write:
1018 <div class="informalexample"><pre class="programlisting">
1019 g_date_set_time_t (date, time (NULL));
1021 <div class="variablelist"><table border="0">
1022 <col align="left" valign="top">
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>
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
1036 <p class="since">Since 2.10</p>
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>
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">
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>
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
1062 <p class="since">Since 2.10</p>
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>
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.
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
1083 <div class="variablelist"><table border="0">
1084 <col align="left" valign="top">
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
1092 <td><p><span class="term"><em class="parameter"><code>str</code></em> :</span></p></td>
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>
1105 Increments a date some number of days. To move forward by weeks, add
1106 weeks*7 days. The date must be valid.
1108 <div class="variablelist"><table border="0">
1109 <col align="left" valign="top">
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
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
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>
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.
1133 <div class="variablelist"><table border="0">
1134 <col align="left" valign="top">
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
1142 <td><p><span class="term"><em class="parameter"><code>n_days</code></em> :</span></p></td>
1143 <td>number of days to move
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>
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
1160 <div class="variablelist"><table border="0">
1161 <col align="left" valign="top">
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
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
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>
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.
1186 <div class="variablelist"><table border="0">
1187 <col align="left" valign="top">
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
1195 <td><p><span class="term"><em class="parameter"><code>n_months</code></em> :</span></p></td>
1196 <td>number of months to move
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>
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.
1212 <div class="variablelist"><table border="0">
1213 <col align="left" valign="top">
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
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
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>
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
1239 <div class="variablelist"><table border="0">
1240 <col align="left" valign="top">
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
1248 <td><p><span class="term"><em class="parameter"><code>n_years</code></em> :</span></p></td>
1249 <td>number of years to move
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>
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.
1265 <div class="variablelist"><table border="0">
1266 <col align="left" valign="top">
1269 <td><p><span class="term"><em class="parameter"><code>date1</code></em> :</span></p></td>
1274 <td><p><span class="term"><em class="parameter"><code>date2</code></em> :</span></p></td>
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>
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>
1292 <code class="function">qsort()</code>-style comparsion function for dates. Both
1293 dates must be valid.
1295 <div class="variablelist"><table border="0">
1296 <col align="left" valign="top">
1299 <td><p><span class="term"><em class="parameter"><code>lhs</code></em> :</span></p></td>
1300 <td>first date to compare
1304 <td><p><span class="term"><em class="parameter"><code>rhs</code></em> :</span></p></td>
1305 <td>second date to compare
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>
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>
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
1330 <div class="variablelist"><table border="0">
1331 <col align="left" valign="top">
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
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>
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>
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>
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.
1360 <div class="variablelist"><table border="0">
1361 <col align="left" valign="top">
1364 <td><p><span class="term"><em class="parameter"><code>date1</code></em> :</span></p></td>
1369 <td><p><span class="term"><em class="parameter"><code>date2</code></em> :</span></p></td>
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>
1381 Returns the day of the month. The date must be valid.
1383 <div class="variablelist"><table border="0">
1384 <col align="left" valign="top">
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
1392 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1393 <td>day of the month
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>
1404 Returns the month of the year. The date must be valid.
1406 <div class="variablelist"><table border="0">
1407 <col align="left" valign="top">
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
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>
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>
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.
1429 <div class="variablelist"><table border="0">
1430 <col align="left" valign="top">
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>
1438 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1439 <td>year in which the date falls
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>
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.
1455 <div class="variablelist"><table border="0">
1456 <col align="left" valign="top">
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
1464 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
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>
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.
1478 <div class="variablelist"><table border="0">
1479 <col align="left" valign="top">
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>.
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>.
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>
1499 Returns the day of the year, where Jan 1 is the first day of the
1500 year. The date must be valid.
1502 <div class="variablelist"><table border="0">
1503 <col align="left" valign="top">
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
1511 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
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>
1524 Returns the number of days in a month, taking leap years into account.
1526 <div class="variablelist"><table border="0">
1527 <col align="left" valign="top">
1530 <td><p><span class="term"><em class="parameter"><code>month</code></em> :</span></p></td>
1535 <td><p><span class="term"><em class="parameter"><code>year</code></em> :</span></p></td>
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>
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>
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.
1554 <div class="variablelist"><table border="0">
1555 <col align="left" valign="top">
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
1563 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></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
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>
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.
1578 <div class="variablelist"><table border="0">
1579 <col align="left" valign="top">
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
1587 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></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
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>
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>
1602 <div class="variablelist"><table border="0">
1603 <col align="left" valign="top">
1606 <td><p><span class="term"><em class="parameter"><code>year</code></em> :</span></p></td>
1611 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></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
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>
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.
1628 <div class="variablelist"><table border="0">
1629 <col align="left" valign="top">
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>
1637 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1638 <td>week of the year
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>
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
1656 <div class="variablelist"><table border="0">
1657 <col align="left" valign="top">
1660 <td><p><span class="term"><em class="parameter"><code>year</code></em> :</span></p></td>
1665 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1666 <td>number of Mondays in the year
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>
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.
1681 <div class="variablelist"><table border="0">
1682 <col align="left" valign="top">
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>
1690 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
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>
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
1709 <div class="variablelist"><table border="0">
1710 <col align="left" valign="top">
1713 <td><p><span class="term"><em class="parameter"><code>year</code></em> :</span></p></td>
1714 <td>year to count weeks in
1718 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
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>
1730 Returns the week of the year, where weeks are interpreted according
1732 <div class="variablelist"><table border="0">
1733 <col align="left" valign="top">
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>
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.
1748 <p class="since">Since 2.6</p>
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>
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.
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.
1771 <div class="variablelist"><table border="0">
1772 <col align="left" valign="top">
1775 <td><p><span class="term"><em class="parameter"><code>s</code></em> :</span></p></td>
1776 <td>destination buffer
1780 <td><p><span class="term"><em class="parameter"><code>slen</code></em> :</span></p></td>
1785 <td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
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>
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
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>
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.
1812 <div class="variablelist"><table border="0">
1813 <col align="left" valign="top">
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.
1821 <td><p><span class="term"><em class="parameter"><code>tm</code></em> :</span></p></td>
1823 <span class="structname">struct tm</span> to fill.
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>
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.
1838 <div class="variablelist"><table border="0">
1839 <col align="left" valign="top">
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
1847 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1848 <td>Whether the date is valid
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>
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).
1862 <div class="variablelist"><table border="0">
1863 <col align="left" valign="top">
1866 <td><p><span class="term"><em class="parameter"><code>day</code></em> :</span></p></td>
1871 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></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
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>
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.
1887 <div class="variablelist"><table border="0">
1888 <col align="left" valign="top">
1891 <td><p><span class="term"><em class="parameter"><code>month</code></em> :</span></p></td>
1896 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></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
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>
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.
1912 <div class="variablelist"><table border="0">
1913 <col align="left" valign="top">
1916 <td><p><span class="term"><em class="parameter"><code>year</code></em> :</span></p></td>
1921 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></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
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>
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).
1940 <div class="variablelist"><table border="0">
1941 <col align="left" valign="top">
1944 <td><p><span class="term"><em class="parameter"><code>day</code></em> :</span></p></td>
1949 <td><p><span class="term"><em class="parameter"><code>month</code></em> :</span></p></td>
1954 <td><p><span class="term"><em class="parameter"><code>year</code></em> :</span></p></td>
1959 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></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
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>
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.
1975 <div class="variablelist"><table border="0">
1976 <col align="left" valign="top">
1979 <td><p><span class="term"><em class="parameter"><code>julian_date</code></em> :</span></p></td>
1980 <td>Julian day to check
1984 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></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
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>
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.
2000 <div class="variablelist"><table border="0">
2001 <col align="left" valign="top">
2004 <td><p><span class="term"><em class="parameter"><code>weekday</code></em> :</span></p></td>
2009 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></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
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>
2026 <div class="footer">
2028 Generated by GTK-Doc V1.13</div>