X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=include%2Fyaz%2Fz-date.h;fp=include%2Fyaz%2Fz-date.h;h=efa27a0bf6c350587c80fa60f4d7d255e6fb80ac;hb=51ce48f9d3319a9f8952c4c6deb2c39692403376;hp=0000000000000000000000000000000000000000;hpb=ee5338c518eced23556105b4b2ad3cd850fd79ea;p=yaz-moved-to-github.git diff --git a/include/yaz/z-date.h b/include/yaz/z-date.h new file mode 100644 index 0000000..efa27a0 --- /dev/null +++ b/include/yaz/z-date.h @@ -0,0 +1,134 @@ +/* YC 0.2: Tue Feb 29 16:45:14 CET 2000 */ +/* Module-H UserInfoFormat-dateTime */ + +#ifndef z_date_H +#define z_date_H + +#include +#include +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct Z_DateTime Z_DateTime; +YAZ_EXPORT int z_DateTime (ODR o, Z_DateTime **p, int opt, const char *name); + +typedef struct Z_DateMonthAndDay Z_DateMonthAndDay; +YAZ_EXPORT int z_DateMonthAndDay (ODR o, Z_DateMonthAndDay **p, int opt, const char *name); + +typedef struct Z_DateQuarter Z_DateQuarter; +YAZ_EXPORT int z_DateQuarter (ODR o, Z_DateQuarter **p, int opt, const char *name); + +typedef struct Z_DateSeason Z_DateSeason; +YAZ_EXPORT int z_DateSeason (ODR o, Z_DateSeason **p, int opt, const char *name); + +typedef struct Z_Era Z_Era; +YAZ_EXPORT int z_Era (ODR o, Z_Era **p, int opt, const char *name); + +typedef struct Z_DateFlags Z_DateFlags; +YAZ_EXPORT int z_DateFlags (ODR o, Z_DateFlags **p, int opt, const char *name); + +typedef struct Z_Date Z_Date; +YAZ_EXPORT int z_Date (ODR o, Z_Date **p, int opt, const char *name); + +typedef struct Z_Time Z_Time; +YAZ_EXPORT int z_Time (ODR o, Z_Time **p, int opt, const char *name); +#ifdef __cplusplus +} +#endif +#ifdef __cplusplus +extern "C" { +#endif +struct Z_DateTime { + Z_Date *date; /* OPT */ + Z_Time *time; /* OPT */ +}; + +struct Z_DateMonthAndDay { + int *month; + int *day; /* OPT */ +}; + +struct Z_DateQuarter { + int which; + union { + Odr_null *first; + Odr_null *second; + Odr_null *third; + Odr_null *fourth; +#define Z_DateQuarter_first 1 +#define Z_DateQuarter_second 2 +#define Z_DateQuarter_third 3 +#define Z_DateQuarter_fourth 4 + } u; +}; + +struct Z_DateSeason { + int which; + union { + Odr_null *winter; + Odr_null *spring; + Odr_null *summer; + Odr_null *autumn; +#define Z_DateSeason_winter 1 +#define Z_DateSeason_spring 2 +#define Z_DateSeason_summer 3 +#define Z_DateSeason_autumn 4 + } u; +}; + +struct Z_Era { + int which; + union { + Odr_null *decade; + Odr_null *century; + Odr_null *millennium; +#define Z_Era_decade 1 +#define Z_Era_century 2 +#define Z_Era_millennium 3 + } u; +}; + +struct Z_DateFlags { + Odr_null *circa; /* OPT */ + Z_Era *era; /* OPT */ +}; + +struct Z_Date { + int *year; + int which; + union { + Z_DateMonthAndDay *monthAndDay; + int *julianDay; + int *weekNumber; + Z_DateQuarter *quarter; + Z_DateSeason *season; +#define Z_Date_monthAndDay 1 +#define Z_Date_julianDay 2 +#define Z_Date_weekNumber 3 +#define Z_Date_quarter 4 +#define Z_Date_season 5 + } u; /* OPT */ + Z_DateFlags *flags; /* OPT */ +}; + +struct Z_Time { + int *hour; + int *minute; /* OPT */ + int *second; /* OPT */ + Z_IntUnit *partOfSecond; /* OPT */ + int which; + union { + Odr_null *local; + Odr_null *utc; + int *utcOffset; +#define Z_Time_local 1 +#define Z_Time_utc 2 +#define Z_Time_utcOffset 3 + } u; +}; + +#ifdef __cplusplus +} +#endif +#endif