00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef GWEN_TIME_H
00030 #define GWEN_TIME_H
00031
00032
00033 #include <gwenhywfar/gwenhywfarapi.h>
00034 #include <gwenhywfar/types.h>
00035 #include <gwenhywfar/db.h>
00036 #include <time.h>
00037
00038
00039 #ifdef __cplusplus
00040 extern "C" {
00041 #endif
00042
00043 typedef struct GWEN_TIME GWEN_TIME;
00044
00045
00046 GWENHYWFAR_API int GWEN_Time_toDb(const GWEN_TIME *t, GWEN_DB_NODE *db);
00047 GWENHYWFAR_API GWEN_TIME *GWEN_Time_fromDb(GWEN_DB_NODE *db);
00048
00049
00050 GWENHYWFAR_API GWEN_TIME *GWEN_CurrentTime();
00051
00052 GWENHYWFAR_API GWEN_TIME *GWEN_Time_new(int year,
00053 int month,
00054 int day,
00055 int hour,
00056 int min,
00057 int sec,
00058 int inUtc);
00059
00093 GWENHYWFAR_API GWEN_TIME *GWEN_Time_fromString(const char *s,
00094 const char *tmpl);
00095
00096 GWENHYWFAR_API GWEN_TIME *GWEN_Time_fromUtcString(const char *s,
00097 const char *tmpl);
00098
00099 GWENHYWFAR_API int GWEN_Time_toString(const GWEN_TIME *t,
00100 const char *tmpl,
00101 GWEN_BUFFER *buf);
00102 GWENHYWFAR_API int GWEN_Time_toUtcString(const GWEN_TIME *t,
00103 const char *tmpl,
00104 GWEN_BUFFER *buf);
00105
00106
00110 GWENHYWFAR_API GWEN_TIME *GWEN_Time_fromSeconds(GWEN_TYPE_UINT32 s);
00111 GWENHYWFAR_API void GWEN_Time_free(GWEN_TIME *t);
00112 GWENHYWFAR_API GWEN_TIME *GWEN_Time_dup(const GWEN_TIME *t);
00113
00117 GWENHYWFAR_API GWEN_TYPE_UINT32 GWEN_Time_Seconds(const GWEN_TIME *t);
00118
00120 GWENHYWFAR_API double GWEN_Time_Milliseconds(const GWEN_TIME *t);
00121
00125 GWENHYWFAR_API double GWEN_Time_Diff(const GWEN_TIME *t1,
00126 const GWEN_TIME *t0);
00127
00131 GWENHYWFAR_API double GWEN_Time_DiffSeconds(const GWEN_TIME *t1,
00132 const GWEN_TIME *t0);
00133
00138 GWENHYWFAR_API int GWEN_Time_AddSeconds(GWEN_TIME *ti, GWEN_TYPE_UINT32 secs);
00139
00144 GWENHYWFAR_API int GWEN_Time_SubSeconds(GWEN_TIME *ti, GWEN_TYPE_UINT32 secs);
00145
00146
00150 GWENHYWFAR_API int GWEN_Time_GetBrokenDownTime(const GWEN_TIME *t,
00151 int *hours,
00152 int *mins,
00153 int *secs);
00154
00158 GWENHYWFAR_API int GWEN_Time_GetBrokenDownUtcTime(const GWEN_TIME *t,
00159 int *hours,
00160 int *mins,
00161 int *secs);
00162
00166 GWENHYWFAR_API int GWEN_Time_GetBrokenDownDate(const GWEN_TIME *t,
00167 int *days,
00168 int *month,
00169 int *year);
00170
00174 GWENHYWFAR_API int GWEN_Time_GetBrokenDownUtcDate(const GWEN_TIME *t,
00175 int *days,
00176 int *month,
00177 int *year);
00178
00183 GWENHYWFAR_API struct tm GWEN_Time_toTm(const GWEN_TIME *t);
00184
00188 GWENHYWFAR_API time_t GWEN_Time_toTime_t(const GWEN_TIME *t);
00189
00190
00191
00192 #ifdef __cplusplus
00193 }
00194 #endif
00195
00196
00197
00198 #endif
00199