Libical API Documentation 4.0 UNRELEASED Go to the stable 3.0 documentation
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 SPDX-FileCopyrightText: 2000, Eric Busboom <eric@civicknowledge.com>
6 SPDX-License-Identifier: LGPL-2.1-only OR MPL-2.0
7
8 The Original Code is eric. The Initial Developer of the Original
9 Code is Eric Busboom
10======================================================================*/
11
67
68#ifndef ICALTIME_H
69#define ICALTIME_H
70
71#include "libical_ical_export.h"
72
73#include "icaltime_p.h"
74
75#include <stdbool.h>
76#include <time.h>
77
79/* An opaque struct representing a timezone. We declare this here to avoid
80 a circular dependency. */
81#if !defined(ICALTIMEZONE_DEFINED)
82#define ICALTIMEZONE_DEFINED
83typedef struct _icaltimezone icaltimezone;
84#endif
86
91 int year;
92 int month;
93 int day;
94 int hour;
95 int minute;
96 int second;
97
98 int is_date;
99
101
103};
104
105typedef struct icaltimetype icaltimetype;
106
108#define ICALTIMETYPE_INITIALIZER {0, 0, 0, 0, 0, 0, 0, 0, 0}
110
117LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_null_time(void);
118
124LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_null_date(void);
125
133LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_current_time_with_zone(const icaltimezone *zone);
134
139LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_today(void);
140
164LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_from_timet_with_zone(const icaltime_t tm,
165 const bool is_date,
166 const icaltimezone *zone);
167
183LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_from_string(const char *str);
184
198LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_from_day_of_year(const int doy, const int year);
199
214LIBICAL_ICAL_EXPORT icaltime_t icaltime_as_timet(const struct icaltimetype tt);
215
230LIBICAL_ICAL_EXPORT icaltime_t icaltime_as_timet_with_zone(const struct icaltimetype tt,
231 const icaltimezone *zone);
232
245LIBICAL_ICAL_EXPORT const char *icaltime_as_ical_string(const struct icaltimetype tt);
246
259LIBICAL_ICAL_EXPORT char *icaltime_as_ical_string_r(const struct icaltimetype tt);
260
268LIBICAL_ICAL_EXPORT const icaltimezone *icaltime_get_timezone(const struct icaltimetype t);
269
277LIBICAL_ICAL_EXPORT const char *icaltime_get_tzid(const struct icaltimetype t);
278
300LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_set_timezone(struct icaltimetype *t,
301 const icaltimezone *zone);
302
311LIBICAL_ICAL_EXPORT int icaltime_day_of_year(const struct icaltimetype t);
312
320LIBICAL_ICAL_EXPORT int icaltime_day_of_week(const struct icaltimetype t);
321
334LIBICAL_ICAL_EXPORT int icaltime_start_doy_week(const struct icaltimetype t, int fdow);
335
344LIBICAL_ICAL_EXPORT bool icaltime_is_null_time(const struct icaltimetype t);
345
356LIBICAL_ICAL_EXPORT bool icaltime_is_valid_time(const struct icaltimetype t);
357
365LIBICAL_ICAL_EXPORT bool icaltime_is_date(const struct icaltimetype t);
366
375LIBICAL_ICAL_EXPORT bool icaltime_is_utc(const struct icaltimetype t);
376
389LIBICAL_ICAL_EXPORT int icaltime_compare(const struct icaltimetype a, const struct icaltimetype b);
390
404LIBICAL_ICAL_EXPORT int icaltime_compare_date_only(const struct icaltimetype a,
405 const struct icaltimetype b);
406
421LIBICAL_ICAL_EXPORT int icaltime_compare_date_only_tz(const struct icaltimetype a,
422 const struct icaltimetype b,
423 icaltimezone *tz);
424
440LIBICAL_ICAL_EXPORT void icaltime_adjust(struct icaltimetype *tt,
441 const int days, const int hours,
442 const int minutes, const int seconds);
443
456LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_normalize(const struct icaltimetype tt);
457
480LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_convert_to_zone(const struct icaltimetype tt,
482
491LIBICAL_ICAL_EXPORT int icaltime_days_in_month(const int month, const int year);
492
500LIBICAL_ICAL_EXPORT bool icaltime_is_leap_year(const int year);
501
510LIBICAL_ICAL_EXPORT int icaltime_days_in_year(const int year);
511
512#endif /* !ICALTIME_H */
513
514/* kate: syntax C; */
struct icaltimetype icaltime_from_timet_with_zone(const icaltime_t tm, const bool is_date, const icaltimezone *zone)
Constructor.
Definition icaltime.c:209
struct icaltimetype icaltime_from_string(const char *str)
Definition icaltime.c:374
struct icaltimetype icaltime_current_time_with_zone(const icaltimezone *zone)
Definition icaltime.c:249
struct icaltimetype icaltime_from_day_of_year(const int _doy, const int _year)
Definition icaltime.c:540
struct icaltimetype icaltime_today(void)
Convenience constructor.
Definition icaltime.c:254
struct icaltimetype icaltime_null_date(void)
Definition icaltime.c:584
struct icaltimetype icaltime_convert_to_zone(const struct icaltimetype tt, icaltimezone *zone)
Definition icaltime.c:855
struct icaltimetype icaltime_normalize(const struct icaltimetype tt)
Definition icaltime.c:366
struct icaltimetype icaltime_set_timezone(struct icaltimetype *t, const icaltimezone *zone)
Definition icaltime.c:892
struct icaltimetype icaltime_null_time(void)
Definition icaltime.c:575
int icaltime_compare(const struct icaltimetype a, const struct icaltimetype b)
Definition icaltime.c:635
int icaltime_compare_date_only(const struct icaltimetype a, const struct icaltimetype b)
Definition icaltime.c:704
bool icaltime_is_date(const struct icaltimetype t)
Definition icaltime.c:616
const char * icaltime_get_tzid(const struct icaltimetype t)
Definition icaltime.c:883
int icaltime_day_of_year(const struct icaltimetype t)
Definition icaltime.c:533
int icaltime_start_doy_week(const struct icaltimetype t, int fdow)
Definition icaltime.c:512
bool icaltime_is_leap_year(const int year)
Definition icaltime.c:451
const icaltimezone * icaltime_get_timezone(const struct icaltimetype t)
Definition icaltime.c:878
int icaltime_day_of_week(const struct icaltimetype t)
Definition icaltime.c:497
bool icaltime_is_valid_time(const struct icaltimetype t)
Definition icaltime.c:603
const char * icaltime_as_ical_string(const struct icaltimetype tt)
Definition icaltime.c:332
int icaltime_days_in_month(const int month, const int year)
Definition icaltime.c:471
bool icaltime_is_utc(const struct icaltimetype t)
Definition icaltime.c:621
int icaltime_compare_date_only_tz(const struct icaltimetype a, const struct icaltimetype b, icaltimezone *tz)
Definition icaltime.c:734
int icaltime_days_in_year(const int year)
Definition icaltime.c:460
bool icaltime_is_null_time(const struct icaltimetype t)
Definition icaltime.c:626
icaltime_t icaltime_as_timet_with_zone(const struct icaltimetype tt, const icaltimezone *zone)
Definition icaltime.c:292
icaltime_t icaltime_as_timet(const struct icaltimetype tt)
Definition icaltime.c:259
void icaltime_adjust(struct icaltimetype *tt, const int days, const int hours, const int minutes, const int seconds)
Definition icaltime.c:764
char * icaltime_as_ical_string_r(const struct icaltimetype tt)
Definition icaltime.c:341
struct _icaltimezone icaltimezone
int is_daylight
Definition icaltime.h:100
const icaltimezone * zone
Definition icaltime.h:102