Libical API Documentation 3.0
Loading...
Searching...
No Matches
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@civicknowledge.com>
6
7 This library is free software; you can redistribute it and/or modify
8 it under the terms of either:
9
10 The LGPL as published by the Free Software Foundation, version
11 2.1, available at: https://www.gnu.org/licenses/lgpl-2.1.html
12
13 Or:
14
15 The Mozilla Public License Version 2.0. You may obtain a copy of
16 the License at https://www.mozilla.org/MPL/
17
18 The Original Code is eric. The Initial Developer of the Original
19 Code is Eric Busboom
20======================================================================*/
21
80#ifndef ICALTIME_H
81#define ICALTIME_H
82
83#include "libical_ical_export.h"
84
85#include <time.h>
86
87/* An opaque struct representing a timezone. We declare this here to avoid
88 a circular dependency. */
89#if !defined(ICALTIMEZONE_DEFINED)
90#define ICALTIMEZONE_DEFINED
91typedef struct _icaltimezone icaltimezone;
92#endif
93
96{
97 time_t start;
98 time_t end;
99 int is_busy;
100};
101
102typedef struct icaltime_span icaltime_span;
103
105{
106 int year;
107 int month;
108 int day;
109 int hour;
110 int minute;
111 int second;
112
118};
119
120typedef struct icaltimetype icaltimetype;
121
122#define ICALTIMETYPE_INITIALIZER { 0, 0, 0, 0, 0, 0, 0, 0, 0}
123
129LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_null_time(void);
130
135LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_null_date(void);
136
141LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_current_time_with_zone(const icaltimezone *zone);
142
147LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_today(void);
148
172LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_from_timet_with_zone(const time_t tm,
173 const int is_date,
174 const icaltimezone *zone);
175
185LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_from_string(const char *str);
186
193LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_from_day_of_year(const int doy, const int year);
194
205LIBICAL_ICAL_EXPORT time_t icaltime_as_timet(const struct icaltimetype);
206
215LIBICAL_ICAL_EXPORT time_t icaltime_as_timet_with_zone(const struct icaltimetype tt,
216 const icaltimezone *zone);
217
224LIBICAL_ICAL_EXPORT const char *icaltime_as_ical_string(const struct icaltimetype tt);
225
232LIBICAL_ICAL_EXPORT char *icaltime_as_ical_string_r(const struct icaltimetype tt);
233
235LIBICAL_ICAL_EXPORT const icaltimezone *icaltime_get_timezone(const struct icaltimetype t);
236
238LIBICAL_ICAL_EXPORT const char *icaltime_get_tzid(const struct icaltimetype t);
239
254LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_set_timezone(struct icaltimetype *t,
255 const icaltimezone *zone);
256
260LIBICAL_ICAL_EXPORT int icaltime_day_of_year(const struct icaltimetype t);
261
266LIBICAL_ICAL_EXPORT int icaltime_day_of_week(const struct icaltimetype t);
267
276LIBICAL_ICAL_EXPORT int icaltime_start_doy_week(const struct icaltimetype t, int fdow);
277
283LIBICAL_ICAL_EXPORT int icaltime_week_number(const struct icaltimetype t);
284
286LIBICAL_ICAL_EXPORT int icaltime_is_null_time(const struct icaltimetype t);
287
294LIBICAL_ICAL_EXPORT int icaltime_is_valid_time(const struct icaltimetype t);
295
301LIBICAL_ICAL_EXPORT int icaltime_is_date(const struct icaltimetype t);
302
307LIBICAL_ICAL_EXPORT int icaltime_is_utc(const struct icaltimetype t);
308
315LIBICAL_ICAL_EXPORT int icaltime_compare(const struct icaltimetype a, const struct icaltimetype b);
316
322LIBICAL_ICAL_EXPORT int icaltime_compare_date_only(const struct icaltimetype a,
323 const struct icaltimetype b);
324
331LIBICAL_ICAL_EXPORT int icaltime_compare_date_only_tz(const struct icaltimetype a,
332 const struct icaltimetype b,
333 icaltimezone *tz);
334
345LIBICAL_ICAL_EXPORT void icaltime_adjust(struct icaltimetype *tt,
346 const int days, const int hours,
347 const int minutes, const int seconds);
348
358LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_normalize(const struct icaltimetype tt);
359
377LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_convert_to_zone(const struct icaltimetype tt,
379
381LIBICAL_ICAL_EXPORT int icaltime_days_in_month(const int month, const int year);
382
388LIBICAL_ICAL_EXPORT int icaltime_is_leap_year(const int year);
389
391LIBICAL_ICAL_EXPORT int icaltime_days_in_year(const int year);
392
402LIBICAL_ICAL_EXPORT struct icaltime_span icaltime_span_new(struct icaltimetype dtstart,
403 struct icaltimetype dtend, int is_busy);
404
418LIBICAL_ICAL_EXPORT int icaltime_span_overlaps(icaltime_span *s1, icaltime_span *s2);
419
428LIBICAL_ICAL_EXPORT int icaltime_span_contains(icaltime_span *s, icaltime_span *container);
429
430#endif /* !ICALTIME_H */
int icaltime_is_utc(const struct icaltimetype t)
Returns true if the time is relative to UTC zone.
Definition icaltime.c:621
int icaltime_compare(const struct icaltimetype a, const struct icaltimetype b)
Returns -1, 0, or 1 to indicate that a is less than b, a equals b, or a is greater than b.
Definition icaltime.c:635
int icaltime_compare_date_only(const struct icaltimetype a, const struct icaltimetype b)
Like icaltime_compare, but only use the date parts.
Definition icaltime.c:690
int icaltime_span_contains(icaltime_span *s, icaltime_span *container)
Returns true if the span is totally within the containing span.
Definition icaltime.c:957
struct icaltimetype icaltime_from_string(const char *str)
Constructor.
Definition icaltime.c:354
const char * icaltime_get_tzid(const struct icaltimetype t)
Returns the tzid, or NULL for a floating time.
Definition icaltime.c:876
struct icaltimetype icaltime_from_day_of_year(const int doy, const int year)
Constructor.
Definition icaltime.c:544
struct icaltimetype icaltime_current_time_with_zone(const icaltimezone *zone)
Convenience constructor.
Definition icaltime.c:236
int icaltime_day_of_year(const struct icaltimetype t)
Returns the day of the year, counting from 1 (Jan 1st).
Definition icaltime.c:537
int icaltime_start_doy_week(const struct icaltimetype t, int fdow)
Returns the day of the year for the first day of the week that the given time is within.
Definition icaltime.c:494
struct icaltime_span icaltime_span_new(struct icaltimetype dtstart, struct icaltimetype dtend, int is_busy)
Builds an icaltimespan given a start time, end time and busy value.
Definition icaltime.c:901
time_t icaltime_as_timet_with_zone(const struct icaltimetype tt, const icaltimezone *zone)
Returns the time as seconds past the UNIX epoch, using the given timezone.
Definition icaltime.c:277
const icaltimezone * icaltime_get_timezone(const struct icaltimetype t)
Returns the timezone.
Definition icaltime.c:871
int icaltime_week_number(const struct icaltimetype t)
Returns the week number for the week the given time is within.
Definition icaltime.c:518
int icaltime_day_of_week(const struct icaltimetype t)
Returns the day of the week of the given time.
Definition icaltime.c:476
int icaltime_is_date(const struct icaltimetype t)
Returns true if time is a DATE.
Definition icaltime.c:616
struct icaltimetype icaltime_today(void)
Convenience constructor.
Definition icaltime.c:241
time_t icaltime_as_timet(const struct icaltimetype)
Definition icaltime.c:246
struct icaltimetype icaltime_null_date(void)
Constructor.
Definition icaltime.c:588
struct icaltimetype icaltime_from_timet_with_zone(const time_t tm, const int is_date, const icaltimezone *zone)
Constructor.
Definition icaltime.c:197
int icaltime_span_overlaps(icaltime_span *s1, icaltime_span *s2)
Returns true if the two spans overlap.
Definition icaltime.c:933
const char * icaltime_as_ical_string(const struct icaltimetype tt)
Returns a string representation of the time, in RFC5545 format.
Definition icaltime.c:315
int icaltime_is_null_time(const struct icaltimetype t)
Returns true if the time is null.
Definition icaltime.c:626
int icaltime_days_in_month(const int month, const int year)
Definition icaltime.c:450
struct icaltimetype icaltime_convert_to_zone(const struct icaltimetype tt, icaltimezone *zone)
Converts time to a given timezone.
Definition icaltime.c:842
int icaltime_is_valid_time(const struct icaltimetype t)
Returns false if the time is clearly invalid, but is not null.
Definition icaltime.c:607
int icaltime_compare_date_only_tz(const struct icaltimetype a, const struct icaltimetype b, icaltimezone *tz)
Like icaltime_compare, but only use the date parts; accepts timezone.
Definition icaltime.c:720
int icaltime_days_in_year(const int year)
Definition icaltime.c:439
int icaltime_is_leap_year(const int year)
Returns whether the specified year is a leap year.
Definition icaltime.c:430
struct icaltimetype icaltime_normalize(const struct icaltimetype tt)
Normalizes the icaltime, so all of the time components are in their normal ranges.
Definition icaltime.c:346
struct icaltimetype icaltime_set_timezone(struct icaltimetype *t, const icaltimezone *zone)
Sets the timezone.
Definition icaltime.c:885
void icaltime_adjust(struct icaltimetype *tt, const int days, const int hours, const int minutes, const int seconds)
Internal, shouldn't be part of the public API.
Definition icaltime.c:757
struct icaltimetype icaltime_null_time(void)
Constructor.
Definition icaltime.c:579
char * icaltime_as_ical_string_r(const struct icaltimetype tt)
Returns a string representation of the time, in RFC5545 format.
Definition icaltime.c:324
Definition icaltimezoneimpl.h:23
Definition icaltime.h:96
time_t start
Definition icaltime.h:97
time_t end
Definition icaltime.h:98
int is_busy
Definition icaltime.h:99
Definition icaltime.h:105
int is_date
Definition icaltime.h:113
int year
Definition icaltime.h:106
int is_daylight
Definition icaltime.h:115
const icaltimezone * zone
Definition icaltime.h:117
int month
Definition icaltime.h:107