2 * Copyright (C) 2009-2010 Christian Hergert <chris@dronelabs.com>
3 * Copyright © 2010 Codethink Limited
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.
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.
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
20 * Authors: Christian Hergert <chris@dronelabs.com>
21 * Thiago Santos <thiago.sousa.santos@collabora.co.uk>
22 * Emmanuele Bassi <ebassi@linux.intel.com>
23 * Ryan Lortie <desrt@desrt.ca>
26 #if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
27 #error "Only <glib.h> can be included directly."
30 #ifndef __G_DATE_TIME_H__
31 #define __G_DATE_TIME_H__
33 #include <glib/gtimezone.h>
40 * Evaluates to a time span of one day.
44 #define G_TIME_SPAN_DAY (G_GINT64_CONSTANT (86400000000))
49 * Evaluates to a time span of one hour.
53 #define G_TIME_SPAN_HOUR (G_GINT64_CONSTANT (3600000000))
58 * Evaluates to a time span of one minute.
62 #define G_TIME_SPAN_MINUTE (G_GINT64_CONSTANT (60000000))
67 * Evaluates to a time span of one second.
71 #define G_TIME_SPAN_SECOND (G_GINT64_CONSTANT (1000000))
74 * G_TIME_SPAN_MILLISECOND:
76 * Evaluates to a time span of one millisecond.
80 #define G_TIME_SPAN_MILLISECOND (G_GINT64_CONSTANT (1000))
85 * A value representing an interval of time, in microseconds.
89 typedef gint64 GTimeSpan
;
94 * <structname>GDateTime</structname> is an opaque structure whose members
95 * cannot be accessed directly.
99 typedef struct _GDateTime GDateTime
;
101 void g_date_time_unref (GDateTime
*datetime
);
102 GDateTime
* g_date_time_ref (GDateTime
*datetime
);
104 GDateTime
* g_date_time_new_now (GTimeZone
*tz
);
105 GDateTime
* g_date_time_new_now_local (void);
106 GDateTime
* g_date_time_new_now_utc (void);
108 GDateTime
* g_date_time_new_from_unix_local (gint64 t
);
109 GDateTime
* g_date_time_new_from_unix_utc (gint64 t
);
111 GDateTime
* g_date_time_new_from_timeval_local (const GTimeVal
*tv
);
112 GDateTime
* g_date_time_new_from_timeval_utc (const GTimeVal
*tv
);
114 GDateTime
* g_date_time_new (GTimeZone
*tz
,
121 GDateTime
* g_date_time_new_local (gint year
,
127 GDateTime
* g_date_time_new_utc (gint year
,
134 G_GNUC_WARN_UNUSED_RESULT
135 GDateTime
* g_date_time_add (GDateTime
*datetime
,
138 G_GNUC_WARN_UNUSED_RESULT
139 GDateTime
* g_date_time_add_years (GDateTime
*datetime
,
141 G_GNUC_WARN_UNUSED_RESULT
142 GDateTime
* g_date_time_add_months (GDateTime
*datetime
,
144 G_GNUC_WARN_UNUSED_RESULT
145 GDateTime
* g_date_time_add_weeks (GDateTime
*datetime
,
147 G_GNUC_WARN_UNUSED_RESULT
148 GDateTime
* g_date_time_add_days (GDateTime
*datetime
,
151 G_GNUC_WARN_UNUSED_RESULT
152 GDateTime
* g_date_time_add_hours (GDateTime
*datetime
,
154 G_GNUC_WARN_UNUSED_RESULT
155 GDateTime
* g_date_time_add_minutes (GDateTime
*datetime
,
157 G_GNUC_WARN_UNUSED_RESULT
158 GDateTime
* g_date_time_add_seconds (GDateTime
*datetime
,
161 G_GNUC_WARN_UNUSED_RESULT
162 GDateTime
* g_date_time_add_full (GDateTime
*datetime
,
170 gint
g_date_time_compare (gconstpointer dt1
,
172 GTimeSpan
g_date_time_difference (GDateTime
*end
,
174 guint
g_date_time_hash (gconstpointer datetime
);
175 gboolean
g_date_time_equal (gconstpointer dt1
,
178 void g_date_time_get_ymd (GDateTime
*datetime
,
183 gint
g_date_time_get_year (GDateTime
*datetime
);
184 gint
g_date_time_get_month (GDateTime
*datetime
);
185 gint
g_date_time_get_day_of_month (GDateTime
*datetime
);
187 gint
g_date_time_get_week_numbering_year (GDateTime
*datetime
);
188 gint
g_date_time_get_week_of_year (GDateTime
*datetime
);
189 gint
g_date_time_get_day_of_week (GDateTime
*datetime
);
191 gint
g_date_time_get_day_of_year (GDateTime
*datetime
);
193 gint
g_date_time_get_hour (GDateTime
*datetime
);
194 gint
g_date_time_get_minute (GDateTime
*datetime
);
195 gint
g_date_time_get_second (GDateTime
*datetime
);
196 gint
g_date_time_get_microsecond (GDateTime
*datetime
);
197 gdouble
g_date_time_get_seconds (GDateTime
*datetime
);
199 gint64
g_date_time_to_unix (GDateTime
*datetime
);
200 gboolean
g_date_time_to_timeval (GDateTime
*datetime
,
203 GTimeSpan
g_date_time_get_utc_offset (GDateTime
*datetime
);
204 const gchar
* g_date_time_get_timezone_abbreviation (GDateTime
*datetime
);
205 gboolean
g_date_time_is_daylight_savings (GDateTime
*datetime
);
207 GDateTime
* g_date_time_to_timezone (GDateTime
*datetime
,
209 GDateTime
* g_date_time_to_local (GDateTime
*datetime
);
210 GDateTime
* g_date_time_to_utc (GDateTime
*datetime
);
212 gchar
* g_date_time_format (GDateTime
*datetime
,
213 const gchar
*format
) G_GNUC_MALLOC
;
217 #endif /* __G_DATE_TIME_H__ */