30 #define CALCALCS_VERSION_NUMBER 1.0
42 int ndays_reg, ndays_leap;
44 int (*c_isleap) ( int,
int * );
45 int (*c_date2jday) ( int, int, int,
int * );
46 int (*c_jday2date) ( int,
int *,
int *,
int * );
47 int (*c_dpm) ( int, int,
int * );
55 struct cccalendar *early_cal, *late_cal;
56 int year_x, month_x, day_x;
57 int year_px, month_px, day_px;
65 char *code, *longname;
69 typedef struct cccalendar calcalcs_cal;
70 typedef struct ccs_ccode ccs_country_code;
86 calcalcs_cal *ccs_init_calendar(
const char *calname );
91 void ccs_free_calendar( calcalcs_cal *calendar );
100 int ccs_date2jday( calcalcs_cal *calendar,
int year,
int month,
int day,
int *jday );
105 int ccs_jday2date( calcalcs_cal *calendar,
int jday,
int *year,
int *month,
int *day );
111 int ccs_isleap( calcalcs_cal *calendar,
int year,
int *leap );
118 int ccs_dpm( calcalcs_cal *calendar,
int year,
int month,
int *dpm );
124 int ccs_date2doy( calcalcs_cal *calendar,
int year,
int month,
int day,
int *doy );
130 int ccs_doy2date( calcalcs_cal *calendar,
int year,
int doy,
int *month,
int *day );
139 int ccs_dayssince( calcalcs_cal *calendar_orig,
int year_orig,
int month_orig,
140 int day_orig,
int ndays_since, calcalcs_cal *calendar_new,
141 int *year_new,
int *month_new,
int *day_new );
200 int ccs_set_xition_date( calcalcs_cal *calendar,
int year,
int month,
int day );
201 int ccs_get_xition_date(
const char *country_code,
int *year,
int *month,
int *day );
206 char *ccs_err_str(
int ccs_errno);
208 #define CALCALCS_ERR_NO_YEAR_ZERO -10
209 #define CALCALCS_ERR_DATE_NOT_IN_CALENDAR -11
210 #define CALCALCS_ERR_INVALID_DAY_OF_YEAR -12
211 #define CALCALCS_ERR_NOT_A_MIXED_CALENDAR -13
212 #define CALCALCS_ERR_UNKNOWN_COUNTRY_CODE -14
213 #define CALCALCS_ERR_OUT_OF_RANGE -15
214 #define CALCALCS_ERR_NULL_CALENDAR -16
215 #define CALCALCS_ERR_INVALID_CALENDAR -17
221 #define UT_ENOINIT -10
222 #define UT_EINVALID -11
236 int is_leap_year(
const char *calendar,
const char *units,
237 int year,
int &leap );
246 int year,
int month,
int &dpm );
251 int date(
double val,
int *year,
int *month,
int *day,
int *hour,
252 int *minute,
double *second,
const char *dataunits,
253 const char *calendar_name );
259 int coordinate(
int year,
int month,
int day,
int hour,
int minute,
260 double second,
const char *user_unit,
const char *calendar_name,