GRASS 8 Programmer's Manual 8.6.0dev(2026)-f6f2c534ea
Loading...
Searching...
No Matches
defs/datetime.h
Go to the documentation of this file.
1#ifndef GRASS_DATETIMEDEFS_H
2#define GRASS_DATETIMEDEFS_H
3
4/* between.c */
5int datetime_is_between(int x, int a, int b);
6
7/* change.c */
8int datetime_change_from_to(DateTime *dt, int from, int to, int round);
9
10/* copy.c */
11void datetime_copy(DateTime *src, const DateTime *dst);
12
13/* diff.c */
14int datetime_difference(const DateTime *a, const DateTime *b, DateTime *result);
15
16/* error.c */
17int datetime_error(int code, char *msg);
18int datetime_error_code(void);
19char *datetime_error_msg(void);
20void datetime_clear_error(void);
21
22/* format.c */
23int datetime_format(const DateTime *dt, char *buf);
24
25/* incr1.c */
26int datetime_increment(DateTime *src, DateTime *incr);
27
28/* incr2.c */
29int datetime_is_valid_increment(const DateTime *src, const DateTime *incr);
30int datetime_check_increment(const DateTime *src, const DateTime *incr);
31
32/* incr3.c */
33int datetime_get_increment_type(const DateTime *dt, int *mode, int *from,
34 int *to, int *fracsec);
35int datetime_set_increment_type(const DateTime *src, DateTime *incr);
36
37/* local.c */
38int datetime_get_local_timezone(int *minutes);
40
41/* misc.c */
42int datetime_days_in_month(int year, int month, int ad);
43int datetime_is_leap_year(int year, int ad);
44int datetime_days_in_year(int year, int ad);
45
46/* same.c */
47int datetime_is_same(const DateTime *src, const DateTime *dst);
48
49/* scan.c */
50int datetime_scan(DateTime *dt, const char *buf);
51
52/* sign.c */
53int datetime_is_positive(const DateTime *dt);
54int datetime_is_negative(const DateTime *dt);
58
59/* type.c */
60int datetime_set_type(DateTime *dt, int mode, int from, int to, int fracsec);
61int datetime_get_type(const DateTime *dt, int *mode, int *from, int *to,
62 int *fracsec);
63int datetime_is_valid_type(const DateTime *dt);
64int datetime_check_type(const DateTime *dt);
67int datetime_is_absolute(const DateTime *dt);
68int datetime_is_relative(const DateTime *dt);
69
70/* tz1.c */
71int datetime_check_timezone(const DateTime *dt, int minutes);
72int datetime_get_timezone(const DateTime *dt, int *minutes);
73int datetime_set_timezone(DateTime *dt, int minutes);
75int datetime_is_valid_timezone(int minutes);
76
77/* tz2.c */
78int datetime_change_timezone(DateTime *dt, int minutes);
80void datetime_decompose_timezone(int tz, int *hours, int *minutes);
81
82/* values.c */
83int datetime_check_year(const DateTime *dt, int year);
84int datetime_check_month(const DateTime *dt, int month);
85int datetime_check_day(const DateTime *dt, int day);
86int datetime_check_hour(const DateTime *dt, int hour);
87int datetime_check_minute(const DateTime *dt, int minute);
88int datetime_check_second(const DateTime *dt, double second);
89int datetime_check_fracsec(const DateTime *dt, int fracsec);
90int datetime_get_year(const DateTime *dt, int *year);
91int datetime_set_year(DateTime *dt, int year);
92int datetime_get_month(const DateTime *dt, int *month);
93int datetime_set_month(DateTime *dt, int month);
94int datetime_get_day(const DateTime *dt, int *day);
95int datetime_set_day(DateTime *dt, int day);
96int datetime_get_hour(const DateTime *dt, int *hour);
97int datetime_set_hour(DateTime *dt, int hour);
98int datetime_get_minute(const DateTime *dt, int *minute);
99int datetime_set_minute(DateTime *dt, int minute);
100int datetime_get_second(const DateTime *dt, double *second);
101int datetime_set_second(DateTime *dt, double second);
102int datetime_get_fracsec(const DateTime *dt, int *fracsec);
103int datetime_set_fracsec(DateTime *dt, int fracsec);
104
105#endif /* GRASS_DATETIMEDEFS_H */
int datetime_is_valid_timezone(int minutes)
Returns: 1 OK: -720 <= minutes <= 780 (720 = 12 hours; 780 = 13 hours) 0 NOT OK.
Definition tz1.c:101
int datetime_set_fracsec(DateTime *dt, int fracsec)
returns 0 on success or negative value on error
Definition values.c:487
int datetime_check_increment(const DateTime *src, const DateTime *incr)
This checks if the type of 'incr' is valid for incrementing/decrementing 'src'. The type (mode/from/t...
Definition incr2.c:56
int datetime_is_negative(const DateTime *dt)
Returns: 1 if the DateTime is negative 0 otherwise.
Definition sign.c:34
int datetime_change_to_utc(DateTime *dt)
Return datetime_change_timezone (dt, 0);.
Definition tz2.c:57
int datetime_error(int code, char *msg)
record 'code' and 'msg' as error code/msg (in static variables) code==0 will clear the error (ie set ...
int datetime_in_interval_day_second(int x)
int datetime_get_second(const DateTime *dt, double *second)
returns 0 on success or negative value on error
Definition values.c:427
int datetime_check_year(const DateTime *dt, int year)
Returns: 0 is legal year for dt -1 illegal year for this dt -2 dt has no year component.
Definition values.c:26
int datetime_get_fracsec(const DateTime *dt, int *fracsec)
returns 0 on success or negative value on error
Definition values.c:467
int datetime_is_positive(const DateTime *dt)
Returns: 1 if the Datetime is positive 0 otherwise.
Definition sign.c:19
int datetime_scan(DateTime *dt, const char *buf)
Convert the ascii string into a DateTime. This determines the mode/from/to based on the string,...
Definition scan.c:40
void datetime_set_negative(DateTime *dt)
Makes the DateTime negative. (B.C. for ABSOLUTE DateTimes)
Definition sign.c:60
int datetime_get_timezone(const DateTime *dt, int *minutes)
returns 0 on success
Definition tz1.c:44
int datetime_difference(const DateTime *a, const DateTime *b, DateTime *result)
This performs the formula: result = a - b;.
Definition diff.c:78
int datetime_unset_timezone(DateTime *dt)
unsets timezone in 'dt' returns 0
Definition tz1.c:84
int datetime_get_type(const DateTime *dt, int *mode, int *from, int *to, int *fracsec)
int datetime_set_day(DateTime *dt, int day)
if dt.mode = ABSOLUTE, then the dt.year, dt.month:
Definition values.c:327
int datetime_is_valid_type(const DateTime *dt)
Returns: 1 if datetime_check_type() returns 0 0 if not.
int datetime_change_timezone(DateTime *dt, int minutes)
if dt has a timezone, increment dt by minutes-dt.tz MINUTES and set dt.tz = minutes Returns: 0 OK dat...
Definition tz2.c:20
void datetime_get_local_time(DateTime *dt)
set mode/from/to ABSOLUTE/YEAR/SECOND set the local time into 'dt' does not set timezone.
Definition local.c:80
int datetime_days_in_month(int year, int month, int ad)
returns number of days in 'month' of a particular 'year'
int datetime_check_day(const DateTime *dt, int day)
Returns: 0 is legal day for dt -1 illegal day for this dt -2 dt has no day component Note: if dt....
Definition values.c:84
int datetime_get_increment_type(const DateTime *dt, int *mode, int *from, int *to, int *fracsec)
This returns the components of a type (mode/from/to/fracsec) that can be used to construct a DateTime...
Definition incr3.c:40
int datetime_error_code(void)
returns an error code
int datetime_is_between(int x, int a, int b)
Definition between.c:7
int datetime_set_month(DateTime *dt, int month)
if dt.mode = ABSOLUTE, this also sets dt.day = 0
Definition values.c:277
int datetime_is_absolute(const DateTime *dt)
Returns: 1 if dt.mode is absolute 0 if not (even if dt.mode is not defined)
int datetime_check_fracsec(const DateTime *dt, int fracsec)
returns: 0 on success -1 if 'dt' has an invalid fracsec -2 if 'dt' has no fracsec
Definition values.c:192
int datetime_set_type(DateTime *dt, int mode, int from, int to, int fracsec)
void datetime_set_positive(DateTime *dt)
Makes the DateTime positive. (A.D. for ABSOLUTE DateTimes)
Definition sign.c:47
int datetime_is_same(const DateTime *src, const DateTime *dst)
Returns: 1 if 'src' is exactly the same as 'dst' 0 if they differ.
Definition same.c:21
int datetime_check_month(const DateTime *dt, int month)
Returns: 0 is legal month for dt -1 illegal month for this dt -2 dt has no month component.
Definition values.c:50
int datetime_get_hour(const DateTime *dt, int *hour)
returns 0 on success or negative value on error
Definition values.c:347
char * datetime_error_msg(void)
returns an error message
int datetime_get_year(const DateTime *dt, int *year)
returns 0 on success or negative value on error
Definition values.c:210
int datetime_get_local_timezone(int *minutes)
Returns: 0 OK -1 local timezone info not available.
Definition local.c:28
int datetime_check_minute(const DateTime *dt, int minute)
returns: 0 on success -1 if 'dt' has an invalid minute -2 if 'dt' has no minute
Definition values.c:144
int datetime_is_relative(const DateTime *dt)
Returns: 1 if dt.mode is relative 0 if not (even if dt.mode is not defined)
int datetime_set_timezone(DateTime *dt, int minutes)
returns 0 on success
Definition tz1.c:64
int datetime_set_hour(DateTime *dt, int hour)
returns 0 on success or negative value on error
Definition values.c:367
void datetime_invert_sign(DateTime *dt)
Definition sign.c:71
int datetime_set_year(DateTime *dt, int year)
if dt.mode = ABSOLUTE, this also sets dt.day = 0
Definition values.c:232
int datetime_get_minute(const DateTime *dt, int *minute)
returns 0 on success or negative value on error
Definition values.c:387
int datetime_set_second(DateTime *dt, double second)
returns 0 on success or negative value on error
Definition values.c:447
int datetime_is_valid_increment(const DateTime *src, const DateTime *incr)
Returns: datetime_check_increment(src, incr) == 0.
Definition incr2.c:19
int datetime_check_timezone(const DateTime *dt, int minutes)
returns 0 on success
Definition tz1.c:23
int datetime_increment(DateTime *src, DateTime *incr)
This function changes the 'src' date/time data based on the 'incr' The type (mode/from/to) of the 'sr...
Definition incr1.c:67
int datetime_change_from_to(DateTime *dt, int from, int to, int round)
Changes the from/to of the type for dt. The 'from/to' must be legal values for the mode of dt; (if th...
Definition change.c:53
int datetime_check_type(const DateTime *dt)
checks the mode/from/to/fracsec in dt. Returns:
int datetime_is_leap_year(int year, int ad)
int datetime_get_day(const DateTime *dt, int *day)
returns 0 on success or negative value on error
Definition values.c:300
int datetime_check_hour(const DateTime *dt, int hour)
returns: 0 on success -1 if 'dt' has an invalid hour -2 if 'dt' has no hour
Definition values.c:120
void datetime_clear_error(void)
clears error code and message
int datetime_set_minute(DateTime *dt, int minute)
returns 0 on success or negative value on error
Definition values.c:407
int datetime_set_increment_type(const DateTime *src, DateTime *incr)
src must be legal This is a convenience routine which is implemented as follows:
Definition incr3.c:82
int datetime_check_second(const DateTime *dt, double second)
returns: 0 on success -1 if 'dt' has an invalid second -2 if 'dt' has no second
Definition values.c:168
int datetime_get_month(const DateTime *dt, int *month)
returns 0 on success or negative value on error
Definition values.c:255
int datetime_days_in_year(int year, int ad)
returns the number of days in 'year'
int datetime_format(const DateTime *dt, char *buf)
formats DateTime structure as a human-readable string returns 0 when successful and 'buf' is filled w...
void datetime_decompose_timezone(int tz, int *hours, int *minutes)
tz = abs(tz) *hour = tz/60 *minute = tz%60 Note: hour,minute are non-negative. Must look at sign of t...
Definition tz2.c:79
int datetime_in_interval_year_month(int x)
void datetime_copy(DateTime *src, const DateTime *dst)
Copies the DateTime [into/from ???] src.
double b
Definition r_raster.c:39