$darkmode
Libical API Documentation 4.0 STABLE VERSION Visit the v3.0 documentation
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 
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
83 typedef struct _icaltimezone icaltimezone;
84 #endif
85 
90 struct icaltimetype {
91  int year;
92  int month;
93  int day;
94  int hour;
95  int minute;
96  int second;
98  int is_date;
103 };
104 
105 typedef struct icaltimetype icaltimetype;
106 
108 #define ICALTIMETYPE_INITIALIZER {0, 0, 0, 0, 0, 0, 0, 0, 0}
109 
117 LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_null_time(void);
118 
124 LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_null_date(void);
125 
133 LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_current_time_with_zone(const icaltimezone *zone);
134 
139 LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_today(void);
140 
164 LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_from_timet_with_zone(const icaltime_t tm,
165  const bool is_date,
166  const icaltimezone *zone);
167 
183 LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_from_string(const char *str);
184 
198 LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_from_day_of_year(const int doy, const int year);
199 
214 LIBICAL_ICAL_EXPORT icaltime_t icaltime_as_timet(const struct icaltimetype tt);
215 
230 LIBICAL_ICAL_EXPORT icaltime_t icaltime_as_timet_with_zone(const struct icaltimetype tt,
231  const icaltimezone *zone);
232 
245 LIBICAL_ICAL_EXPORT const char *icaltime_as_ical_string(const struct icaltimetype tt);
246 
259 LIBICAL_ICAL_EXPORT char *icaltime_as_ical_string_r(const struct icaltimetype tt);
260 
268 LIBICAL_ICAL_EXPORT const icaltimezone *icaltime_get_timezone(const struct icaltimetype t);
269 
277 LIBICAL_ICAL_EXPORT const char *icaltime_get_tzid(const struct icaltimetype t);
278 
300 LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_set_timezone(struct icaltimetype *t,
301  const icaltimezone *zone);
302 
312 LIBICAL_ICAL_EXPORT int icaltime_day_of_year(const struct icaltimetype t);
313 
321 LIBICAL_ICAL_EXPORT int icaltime_day_of_week(const struct icaltimetype t);
322 
335 LIBICAL_ICAL_EXPORT int icaltime_start_doy_week(const struct icaltimetype t, int fdow);
336 
345 LIBICAL_ICAL_EXPORT bool icaltime_is_null_time(const struct icaltimetype t);
346 
357 LIBICAL_ICAL_EXPORT bool icaltime_is_valid_time(const struct icaltimetype t);
358 
366 LIBICAL_ICAL_EXPORT bool icaltime_is_date(const struct icaltimetype t);
367 
376 LIBICAL_ICAL_EXPORT bool icaltime_is_utc(const struct icaltimetype t);
377 
390 LIBICAL_ICAL_EXPORT int icaltime_compare(const struct icaltimetype a, const struct icaltimetype b);
391 
405 LIBICAL_ICAL_EXPORT int icaltime_compare_date_only(const struct icaltimetype a,
406  const struct icaltimetype b);
407 
422 LIBICAL_ICAL_EXPORT int icaltime_compare_date_only_tz(const struct icaltimetype a,
423  const struct icaltimetype b,
424  icaltimezone *tz);
425 
441 LIBICAL_ICAL_EXPORT void icaltime_adjust(struct icaltimetype *tt,
442  const int days, const int hours,
443  const int minutes, const int seconds);
444 
457 LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_normalize(const struct icaltimetype tt);
458 
481 LIBICAL_ICAL_EXPORT struct icaltimetype icaltime_convert_to_zone(const struct icaltimetype tt,
482  icaltimezone *zone);
483 
492 LIBICAL_ICAL_EXPORT int icaltime_days_in_month(const int month, const int year);
493 
501 LIBICAL_ICAL_EXPORT bool icaltime_is_leap_year(const int year);
502 
511 LIBICAL_ICAL_EXPORT int icaltime_days_in_year(const int year);
512 
513 #endif /* !ICALTIME_H */
514 
515 /* kate: syntax C; */
int is_date
Definition: icaltime.h:98
int icaltime_compare_date_only(const struct icaltimetype a, const struct icaltimetype b)
Definition: icaltime.c:708
int icaltime_day_of_week(const struct icaltimetype t)
Definition: icaltime.c:497
struct icaltimetype icaltime_convert_to_zone(const struct icaltimetype tt, icaltimezone *zone)
Definition: icaltime.c:846
struct icaltimetype icaltime_normalize(const struct icaltimetype tt)
Definition: icaltime.c:366
bool icaltime_is_date(const struct icaltimetype t)
Definition: icaltime.c:620
int second
Definition: icaltime.h:96
struct icaltimetype icaltime_from_day_of_year(const int doy, const int year)
Definition: icaltime.c:544
bool icaltime_is_utc(const struct icaltimetype t)
Definition: icaltime.c:625
struct icaltimetype icaltime_today(void)
Convenience constructor.
Definition: icaltime.c:254
void icaltime_adjust(struct icaltimetype *tt, const int days, const int hours, const int minutes, const int seconds)
Definition: icaltime.c:755
const icaltimezone * zone
Definition: icaltime.h:102
icaltime_t icaltime_as_timet_with_zone(const struct icaltimetype tt, const icaltimezone *zone)
Definition: icaltime.c:292
int icaltime_days_in_month(const int month, const int year)
Definition: icaltime.c:471
int icaltime_compare(const struct icaltimetype a, const struct icaltimetype b)
Definition: icaltime.c:639
struct icaltimetype icaltime_current_time_with_zone(const icaltimezone *zone)
Definition: icaltime.c:249
int minute
Definition: icaltime.h:95
struct _icaltimezone icaltimezone
Definition: icaltimezone.h:29
struct icaltimetype icaltime_from_string(const char *str)
Definition: icaltime.c:374
const char * icaltime_get_tzid(const struct icaltimetype t)
Definition: icaltime.c:874
struct icaltimetype icaltime_null_time(void)
Definition: icaltime.c:579
struct icaltimetype icaltime_set_timezone(struct icaltimetype *t, const icaltimezone *zone)
Definition: icaltime.c:883
const icaltimezone * icaltime_get_timezone(const struct icaltimetype t)
Definition: icaltime.c:869
int icaltime_day_of_year(const struct icaltimetype t)
Definition: icaltime.c:533
int icaltime_days_in_year(const int year)
Definition: icaltime.c:460
struct icaltimetype icaltime_from_timet_with_zone(const icaltime_t tm, const bool is_date, const icaltimezone *zone)
Constructor.
Definition: icaltime.c:209
icaltime_t icaltime_as_timet(const struct icaltimetype tt)
Definition: icaltime.c:259
bool icaltime_is_null_time(const struct icaltimetype t)
Definition: icaltime.c:630
char * icaltime_as_ical_string_r(const struct icaltimetype tt)
Definition: icaltime.c:341
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
int icaltime_compare_date_only_tz(const struct icaltimetype a, const struct icaltimetype b, icaltimezone *tz)
Definition: icaltime.c:725
struct icaltimetype icaltime_null_date(void)
Definition: icaltime.c:588
bool icaltime_is_valid_time(const struct icaltimetype t)
Definition: icaltime.c:607
int is_daylight
Definition: icaltime.h:100
const char * icaltime_as_ical_string(const struct icaltimetype tt)
Definition: icaltime.c:332