1 | /* |
2 | * Copyright (C) 2009-2010 Christian Hergert <chris@dronelabs.com> |
3 | * Copyright © 2010 Codethink Limited |
4 | * |
5 | * This library is free software; you can redistribute it and/or modify |
6 | * it under the terms of the GNU Lesser General Public License as |
7 | * published by the Free Software Foundation; either version 2.1 of the |
8 | * licence, or (at your option) any later version. |
9 | * |
10 | * This is distributed in the hope that it will be useful, but WITHOUT |
11 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
12 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public |
13 | * License for more details. |
14 | * |
15 | * You should have received a copy of the GNU Lesser General Public License |
16 | * along with this library; if not, see <http://www.gnu.org/licenses/>. |
17 | * |
18 | * Authors: Christian Hergert <chris@dronelabs.com> |
19 | * Thiago Santos <thiago.sousa.santos@collabora.co.uk> |
20 | * Emmanuele Bassi <ebassi@linux.intel.com> |
21 | * Ryan Lortie <desrt@desrt.ca> |
22 | */ |
23 | |
24 | #ifndef __G_DATE_TIME_H__ |
25 | #define __G_DATE_TIME_H__ |
26 | |
27 | #if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) |
28 | #error "Only <glib.h> can be included directly." |
29 | #endif |
30 | |
31 | #include <glib/gtimezone.h> |
32 | |
33 | G_BEGIN_DECLS |
34 | |
35 | /** |
36 | * G_TIME_SPAN_DAY: |
37 | * |
38 | * Evaluates to a time span of one day. |
39 | * |
40 | * Since: 2.26 |
41 | */ |
42 | #define G_TIME_SPAN_DAY (G_GINT64_CONSTANT (86400000000)) |
43 | |
44 | /** |
45 | * G_TIME_SPAN_HOUR: |
46 | * |
47 | * Evaluates to a time span of one hour. |
48 | * |
49 | * Since: 2.26 |
50 | */ |
51 | #define G_TIME_SPAN_HOUR (G_GINT64_CONSTANT (3600000000)) |
52 | |
53 | /** |
54 | * G_TIME_SPAN_MINUTE: |
55 | * |
56 | * Evaluates to a time span of one minute. |
57 | * |
58 | * Since: 2.26 |
59 | */ |
60 | #define G_TIME_SPAN_MINUTE (G_GINT64_CONSTANT (60000000)) |
61 | |
62 | /** |
63 | * G_TIME_SPAN_SECOND: |
64 | * |
65 | * Evaluates to a time span of one second. |
66 | * |
67 | * Since: 2.26 |
68 | */ |
69 | #define G_TIME_SPAN_SECOND (G_GINT64_CONSTANT (1000000)) |
70 | |
71 | /** |
72 | * G_TIME_SPAN_MILLISECOND: |
73 | * |
74 | * Evaluates to a time span of one millisecond. |
75 | * |
76 | * Since: 2.26 |
77 | */ |
78 | #define G_TIME_SPAN_MILLISECOND (G_GINT64_CONSTANT (1000)) |
79 | |
80 | /** |
81 | * GTimeSpan: |
82 | * |
83 | * A value representing an interval of time, in microseconds. |
84 | * |
85 | * Since: 2.26 |
86 | */ |
87 | typedef gint64 GTimeSpan; |
88 | |
89 | /** |
90 | * GDateTime: |
91 | * |
92 | * `GDateTime` is an opaque structure whose members |
93 | * cannot be accessed directly. |
94 | * |
95 | * Since: 2.26 |
96 | */ |
97 | typedef struct _GDateTime GDateTime; |
98 | |
99 | GLIB_AVAILABLE_IN_ALL |
100 | void g_date_time_unref (GDateTime *datetime); |
101 | GLIB_AVAILABLE_IN_ALL |
102 | GDateTime * g_date_time_ref (GDateTime *datetime); |
103 | |
104 | GLIB_AVAILABLE_IN_ALL |
105 | GDateTime * g_date_time_new_now (GTimeZone *tz); |
106 | GLIB_AVAILABLE_IN_ALL |
107 | GDateTime * g_date_time_new_now_local (void); |
108 | GLIB_AVAILABLE_IN_ALL |
109 | GDateTime * g_date_time_new_now_utc (void); |
110 | |
111 | GLIB_AVAILABLE_IN_ALL |
112 | GDateTime * g_date_time_new_from_unix_local (gint64 t); |
113 | GLIB_AVAILABLE_IN_ALL |
114 | GDateTime * g_date_time_new_from_unix_utc (gint64 t); |
115 | |
116 | G_GNUC_BEGIN_IGNORE_DEPRECATIONS |
117 | GLIB_DEPRECATED_IN_2_62_FOR(g_date_time_new_from_unix_local) |
118 | GDateTime * g_date_time_new_from_timeval_local (const GTimeVal *tv); |
119 | GLIB_DEPRECATED_IN_2_62_FOR(g_date_time_new_from_unix_utc) |
120 | GDateTime * g_date_time_new_from_timeval_utc (const GTimeVal *tv); |
121 | G_GNUC_END_IGNORE_DEPRECATIONS |
122 | |
123 | GLIB_AVAILABLE_IN_2_56 |
124 | GDateTime * g_date_time_new_from_iso8601 (const gchar *text, |
125 | GTimeZone *default_tz); |
126 | |
127 | GLIB_AVAILABLE_IN_ALL |
128 | GDateTime * g_date_time_new (GTimeZone *tz, |
129 | gint year, |
130 | gint month, |
131 | gint day, |
132 | gint hour, |
133 | gint minute, |
134 | gdouble seconds); |
135 | GLIB_AVAILABLE_IN_ALL |
136 | GDateTime * g_date_time_new_local (gint year, |
137 | gint month, |
138 | gint day, |
139 | gint hour, |
140 | gint minute, |
141 | gdouble seconds); |
142 | GLIB_AVAILABLE_IN_ALL |
143 | GDateTime * g_date_time_new_utc (gint year, |
144 | gint month, |
145 | gint day, |
146 | gint hour, |
147 | gint minute, |
148 | gdouble seconds); |
149 | |
150 | GLIB_AVAILABLE_IN_ALL |
151 | G_GNUC_WARN_UNUSED_RESULT |
152 | GDateTime * g_date_time_add (GDateTime *datetime, |
153 | GTimeSpan timespan); |
154 | |
155 | GLIB_AVAILABLE_IN_ALL |
156 | G_GNUC_WARN_UNUSED_RESULT |
157 | GDateTime * g_date_time_add_years (GDateTime *datetime, |
158 | gint years); |
159 | GLIB_AVAILABLE_IN_ALL |
160 | G_GNUC_WARN_UNUSED_RESULT |
161 | GDateTime * g_date_time_add_months (GDateTime *datetime, |
162 | gint months); |
163 | GLIB_AVAILABLE_IN_ALL |
164 | G_GNUC_WARN_UNUSED_RESULT |
165 | GDateTime * g_date_time_add_weeks (GDateTime *datetime, |
166 | gint weeks); |
167 | GLIB_AVAILABLE_IN_ALL |
168 | G_GNUC_WARN_UNUSED_RESULT |
169 | GDateTime * g_date_time_add_days (GDateTime *datetime, |
170 | gint days); |
171 | |
172 | GLIB_AVAILABLE_IN_ALL |
173 | G_GNUC_WARN_UNUSED_RESULT |
174 | GDateTime * g_date_time_add_hours (GDateTime *datetime, |
175 | gint hours); |
176 | GLIB_AVAILABLE_IN_ALL |
177 | G_GNUC_WARN_UNUSED_RESULT |
178 | GDateTime * g_date_time_add_minutes (GDateTime *datetime, |
179 | gint minutes); |
180 | GLIB_AVAILABLE_IN_ALL |
181 | G_GNUC_WARN_UNUSED_RESULT |
182 | GDateTime * g_date_time_add_seconds (GDateTime *datetime, |
183 | gdouble seconds); |
184 | |
185 | GLIB_AVAILABLE_IN_ALL |
186 | G_GNUC_WARN_UNUSED_RESULT |
187 | GDateTime * g_date_time_add_full (GDateTime *datetime, |
188 | gint years, |
189 | gint months, |
190 | gint days, |
191 | gint hours, |
192 | gint minutes, |
193 | gdouble seconds); |
194 | |
195 | GLIB_AVAILABLE_IN_ALL |
196 | gint g_date_time_compare (gconstpointer dt1, |
197 | gconstpointer dt2); |
198 | GLIB_AVAILABLE_IN_ALL |
199 | GTimeSpan g_date_time_difference (GDateTime *end, |
200 | GDateTime *begin); |
201 | GLIB_AVAILABLE_IN_ALL |
202 | guint g_date_time_hash (gconstpointer datetime); |
203 | GLIB_AVAILABLE_IN_ALL |
204 | gboolean g_date_time_equal (gconstpointer dt1, |
205 | gconstpointer dt2); |
206 | |
207 | GLIB_AVAILABLE_IN_ALL |
208 | void g_date_time_get_ymd (GDateTime *datetime, |
209 | gint *year, |
210 | gint *month, |
211 | gint *day); |
212 | |
213 | GLIB_AVAILABLE_IN_ALL |
214 | gint g_date_time_get_year (GDateTime *datetime); |
215 | GLIB_AVAILABLE_IN_ALL |
216 | gint g_date_time_get_month (GDateTime *datetime); |
217 | GLIB_AVAILABLE_IN_ALL |
218 | gint g_date_time_get_day_of_month (GDateTime *datetime); |
219 | |
220 | GLIB_AVAILABLE_IN_ALL |
221 | gint g_date_time_get_week_numbering_year (GDateTime *datetime); |
222 | GLIB_AVAILABLE_IN_ALL |
223 | gint g_date_time_get_week_of_year (GDateTime *datetime); |
224 | GLIB_AVAILABLE_IN_ALL |
225 | gint g_date_time_get_day_of_week (GDateTime *datetime); |
226 | |
227 | GLIB_AVAILABLE_IN_ALL |
228 | gint g_date_time_get_day_of_year (GDateTime *datetime); |
229 | |
230 | GLIB_AVAILABLE_IN_ALL |
231 | gint g_date_time_get_hour (GDateTime *datetime); |
232 | GLIB_AVAILABLE_IN_ALL |
233 | gint g_date_time_get_minute (GDateTime *datetime); |
234 | GLIB_AVAILABLE_IN_ALL |
235 | gint g_date_time_get_second (GDateTime *datetime); |
236 | GLIB_AVAILABLE_IN_ALL |
237 | gint g_date_time_get_microsecond (GDateTime *datetime); |
238 | GLIB_AVAILABLE_IN_ALL |
239 | gdouble g_date_time_get_seconds (GDateTime *datetime); |
240 | |
241 | GLIB_AVAILABLE_IN_ALL |
242 | gint64 g_date_time_to_unix (GDateTime *datetime); |
243 | G_GNUC_BEGIN_IGNORE_DEPRECATIONS |
244 | GLIB_DEPRECATED_IN_2_62_FOR(g_date_time_to_unix) |
245 | gboolean g_date_time_to_timeval (GDateTime *datetime, |
246 | GTimeVal *tv); |
247 | G_GNUC_END_IGNORE_DEPRECATIONS |
248 | |
249 | GLIB_AVAILABLE_IN_ALL |
250 | GTimeSpan g_date_time_get_utc_offset (GDateTime *datetime); |
251 | GLIB_AVAILABLE_IN_2_58 |
252 | GTimeZone * g_date_time_get_timezone (GDateTime *datetime); |
253 | GLIB_AVAILABLE_IN_ALL |
254 | const gchar * g_date_time_get_timezone_abbreviation (GDateTime *datetime); |
255 | GLIB_AVAILABLE_IN_ALL |
256 | gboolean g_date_time_is_daylight_savings (GDateTime *datetime); |
257 | |
258 | GLIB_AVAILABLE_IN_ALL |
259 | GDateTime * g_date_time_to_timezone (GDateTime *datetime, |
260 | GTimeZone *tz); |
261 | GLIB_AVAILABLE_IN_ALL |
262 | GDateTime * g_date_time_to_local (GDateTime *datetime); |
263 | GLIB_AVAILABLE_IN_ALL |
264 | GDateTime * g_date_time_to_utc (GDateTime *datetime); |
265 | |
266 | GLIB_AVAILABLE_IN_ALL |
267 | gchar * g_date_time_format (GDateTime *datetime, |
268 | const gchar *format) G_GNUC_MALLOC; |
269 | GLIB_AVAILABLE_IN_2_62 |
270 | gchar * g_date_time_format_iso8601 (GDateTime *datetime) G_GNUC_MALLOC; |
271 | |
272 | G_END_DECLS |
273 | |
274 | #endif /* __G_DATE_TIME_H__ */ |
275 | |