1 #ifndef _GNM_DATETIME_H_
2 # define _GNM_DATETIME_H_
6 #include <goffice/goffice.h>
10 gboolean
gnm_datetime_allow_negative (void);
12 gnm_float
datetime_value_to_serial_raw (GnmValue
const *v
, GODateConventions
const *conv
);
13 int datetime_value_to_seconds (GnmValue
const *v
, GODateConventions
const *conv
);
15 /* These are date-only, no time. */
16 gboolean
datetime_value_to_g (GDate
*res
, GnmValue
const *v
, GODateConventions
const *conv
);
17 int datetime_value_to_serial (GnmValue
const *v
, GODateConventions
const *conv
);
19 int annual_year_basis (GnmValue
const *value_date
, GOBasisType basis
,
20 GODateConventions
const *date_conv
);
21 gnm_float
yearfrac (GDate
const *from
, GDate
const *to
, GOBasisType basis
);
23 void gnm_date_add_days (GDate
*d
, int n
);
24 void gnm_date_add_months (GDate
*d
, int n
);
25 void gnm_date_add_years (GDate
*d
, int n
);
27 #define GNM_DATE_BASIS_HELP \
28 { GNM_FUNC_HELP_NOTE, F_("If @{basis} is 0, then the US 30/360 method is used.") }, \
29 { GNM_FUNC_HELP_NOTE, F_("If @{basis} is 1, then actual number of days is used.") }, \
30 { GNM_FUNC_HELP_NOTE, F_("If @{basis} is 2, then actual number of days is used within a month, but years are considered only 360 days.") }, \
31 { GNM_FUNC_HELP_NOTE, F_("If @{basis} is 3, then actual number of days is used within a month, but years are always considered 365 days.") }, \
32 { GNM_FUNC_HELP_NOTE, F_("If @{basis} is 4, then the European 30/360 method is used.") },
37 #endif /* _GNM_DATETIME_H_ */