Libical API Documentation  3.0
icaltime.h
Go to the documentation of this file.
1 /*======================================================================
2  FILE: icaltime.h
3  CREATOR: eric 02 June 2000
4 
5  (C) COPYRIGHT 2000, Eric Busboom <eric@softwarestudio.org>
6  http://www.softwarestudio.org
7 
8  This library is free software; you can redistribute it and/or modify
9  it under the terms of either:
10 
11  The LGPL as published by the Free Software Foundation, version
12  2.1, available at: http://www.gnu.org/licenses/lgpl-2.1.html
13 
14  Or:
15 
16  The Mozilla Public License Version 2.0. You may obtain a copy of
17  the License at http://www.mozilla.org/MPL/
18 
19  The Original Code is eric. The Initial Developer of the Original
20  Code is Eric Busboom
21 ======================================================================*/
22 
81 #ifndef ICALTIME_H
82 #define ICALTIME_H
83 
84 #include "libical_ical_export.h"
85 
86 #include <time.h>
87 
88 /* An opaque struct representing a timezone. We declare this here to avoid
89  a circular dependancy. */
90 #if !defined(ICALTIMEZONE_DEFINED)
91 #define ICALTIMEZONE_DEFINED
92 typedef struct _icaltimezone icaltimezone;
93 #endif
94 
97 {
98  time_t start;
99  time_t end;
100  int is_busy;
101 };
102 
103 typedef struct icaltime_span icaltime_span;
104 
106 {
107  int year;
108  int month;
109  int day;
110  int hour;
111  int minute;
112  int second;
113 
114  int is_date;
119 };
120 
121 typedef struct icaltimetype icaltimetype;
122 
125 LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_null_time(void);
126 
128 LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_null_date(void);
129 
131 LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_current_time_with_zone(const icaltimezone *zone);
132 
134 LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_today(void);
135 
137 LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_from_timet_with_zone(const time_t tm,
138  const int is_date,
139  const icaltimezone *zone);
140 
142 LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_from_string(const char *str);
143 
145 LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_from_day_of_year(const int doy, const int year);
146 
154 LIBICAL_ICAL_EXPORT time_t icaltime_as_timet(const struct icaltimetype);
155 
157 LIBICAL_ICAL_EXPORT time_t icaltime_as_timet_with_zone(const struct icaltimetype tt,
158  const icaltimezone *zone);
159 
161 LIBICAL_ICAL_EXPORT const char *icaltime_as_ical_string(const struct icaltimetype tt);
162 
163 LIBICAL_ICAL_EXPORT char *icaltime_as_ical_string_r(const struct icaltimetype tt);
164 
166 LIBICAL_ICAL_EXPORT const icaltimezone *icaltime_get_timezone(const struct icaltimetype t);
167 
169 LIBICAL_ICAL_EXPORT const char *icaltime_get_tzid(const struct icaltimetype t);
170 
172 LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_set_timezone(struct icaltimetype *t,
173  const icaltimezone *zone);
174 
176 LIBICAL_ICAL_EXPORT int icaltime_day_of_year(const struct icaltimetype t);
177 
179 LIBICAL_ICAL_EXPORT int icaltime_day_of_week(const struct icaltimetype t);
180 
183 LIBICAL_ICAL_EXPORT int icaltime_start_doy_week(const struct icaltimetype t, int fdow);
184 
186 LIBICAL_ICAL_EXPORT int icaltime_week_number(const struct icaltimetype t);
187 
189 LIBICAL_ICAL_EXPORT int icaltime_is_null_time(const struct icaltimetype t);
190 
194 LIBICAL_ICAL_EXPORT int icaltime_is_valid_time(const struct icaltimetype t);
195 
197 LIBICAL_ICAL_EXPORT int icaltime_is_date(const struct icaltimetype t);
198 
200 LIBICAL_ICAL_EXPORT int icaltime_is_utc(const struct icaltimetype t);
201 
203 LIBICAL_ICAL_EXPORT int icaltime_compare(const struct icaltimetype a, const struct icaltimetype b);
204 
206 LIBICAL_ICAL_EXPORT int icaltime_compare_date_only(const struct icaltimetype a,
207  const struct icaltimetype b);
208 
210 LIBICAL_ICAL_EXPORT int icaltime_compare_date_only_tz(const struct icaltimetype a,
211  const struct icaltimetype b,
212  icaltimezone *tz);
213 
215 LIBICAL_ICAL_EXPORT void icaltime_adjust(struct icaltimetype *tt,
216  const int days, const int hours,
217  const int minutes, const int seconds);
218 
220 LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_normalize(const struct icaltimetype t);
221 
224 LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_convert_to_zone(const struct icaltimetype tt,
225  icaltimezone *zone);
226 
228 LIBICAL_ICAL_EXPORT int icaltime_days_in_month(const int month, const int year);
229 
231 LIBICAL_ICAL_EXPORT int icaltime_is_leap_year(const int year);
232 
234 LIBICAL_ICAL_EXPORT int icaltime_days_in_year(const int year);
235 
237 LIBICAL_ICAL_EXPORT struct icaltime_span icaltime_span_new(struct icaltimetype dtstart,
238  struct icaltimetype dtend, int is_busy);
239 
241 LIBICAL_ICAL_EXPORT int icaltime_span_overlaps(icaltime_span *s1, icaltime_span *s2);
242 
246 LIBICAL_ICAL_EXPORT int icaltime_span_contains(icaltime_span *s, icaltime_span *container);
247 
248 #endif /* !ICALTIME_H */
int is_date
Definition: icaltime.h:114
int icaltime_is_null_time(const struct icaltimetype t)
Definition: icaltime.c:714
int icaltime_compare_date_only(const struct icaltimetype a, const struct icaltimetype b)
Definition: icaltime.c:788
int icaltime_day_of_week(const struct icaltimetype t)
Definition: icaltime.c:527
struct icaltimetype icaltime_convert_to_zone(const struct icaltimetype tt, icaltimezone *zone)
Convert time to a given timezone.
Definition: icaltime.c:960
struct icaltime_span icaltime_span_new(struct icaltimetype dtstart, struct icaltimetype dtend, int is_busy)
calculate an icaltimespan given a start and end time.
Definition: icaltime.c:1037
Definition: icaltime.h:96
int icaltime_is_date(const struct icaltimetype t)
Returns true if time is of DATE type, false if DATE-TIME.
Definition: icaltime.c:697
time_t start
Definition: icaltime.h:98
struct icaltimetype icaltime_from_day_of_year(const int doy, const int year)
Contructor.
Definition: icaltime.c:609
time_t icaltime_as_timet_with_zone(const struct icaltimetype tt, const icaltimezone *zone)
Definition: icaltime.c:303
int year
Definition: icaltime.h:107
struct icaltimetype icaltime_from_timet_with_zone(const time_t tm, const int is_date, const icaltimezone *zone)
Constructor.
Definition: icaltime.c:208
struct icaltimetype icaltime_today(void)
Convenience constructor.
Definition: icaltime.c:259
void icaltime_adjust(struct icaltimetype *tt, const int days, const int hours, const int minutes, const int seconds)
Internal, shouldn&#39;t be part of the public API.
Definition: icaltime.c:865
const icaltimezone * zone
Definition: icaltime.h:118
int icaltime_is_leap_year(const int year)
Definition: icaltime.c:483
int icaltime_days_in_month(const int month, const int year)
Definition: icaltime.c:503
int icaltime_compare(const struct icaltimetype a, const struct icaltimetype b)
Definition: icaltime.c:729
time_t icaltime_as_timet(const struct icaltimetype)
Definition: icaltime.c:264
struct icaltimetype icaltime_current_time_with_zone(const icaltimezone *zone)
Convenience constructor.
Definition: icaltime.c:250
int is_busy
Definition: icaltime.h:100
int icaltime_span_overlaps(icaltime_span *s1, icaltime_span *s2)
Returns true if the two spans overlap.
Definition: icaltime.c:1083
time_t end
Definition: icaltime.h:99
int icaltime_is_valid_time(const struct icaltimetype t)
Definition: icaltime.c:686
int month
Definition: icaltime.h:108
struct icaltimetype icaltime_from_string(const char *str)
Contructor.
Definition: icaltime.c:405
const char * icaltime_get_tzid(const struct icaltimetype t)
Return the tzid, or NULL for a floating time.
Definition: icaltime.c:994
Definition: icaltime.h:105
struct icaltimetype icaltime_null_time(void)
Constructor.
Definition: icaltime.c:649
struct icaltimetype icaltime_set_timezone(struct icaltimetype *t, const icaltimezone *zone)
Set the timezone.
Definition: icaltime.c:1009
const icaltimezone * icaltime_get_timezone(const struct icaltimetype t)
Return the timezone.
Definition: icaltime.c:989
int icaltime_day_of_year(const struct icaltimetype t)
Definition: icaltime.c:597
Definition: icaltimezoneimpl.h:23
int icaltime_days_in_year(const int year)
Definition: icaltime.c:492
int icaltime_span_contains(icaltime_span *s, icaltime_span *container)
Returns true if the span is totally within the containing span.
Definition: icaltime.c:1116
char * icaltime_as_ical_string_r(const struct icaltimetype tt)
Definition: icaltime.c:358
int icaltime_start_doy_week(const struct icaltimetype t, int fdow)
Definition: icaltime.c:547
int icaltime_compare_date_only_tz(const struct icaltimetype a, const struct icaltimetype b, icaltimezone *tz)
Definition: icaltime.c:822
struct icaltimetype icaltime_null_date(void)
Constructor.
Definition: icaltime.c:662
int icaltime_is_utc(const struct icaltimetype t)
Returns true if time is relative to UTC zone.
Definition: icaltime.c:706
struct icaltimetype icaltime_normalize(const struct icaltimetype t)
Definition: icaltime.c:388
int is_daylight
Definition: icaltime.h:116
int icaltime_week_number(const struct icaltimetype t)
Definition: icaltime.c:575
const char * icaltime_as_ical_string(const struct icaltimetype tt)
Definition: icaltime.c:345