# gwentime.h File Reference

`#include <gwenhywfar/gwenhywfarapi.h>`
`#include <gwenhywfar/types.h>`
`#include <gwenhywfar/db.h>`
`#include <time.h>`

Go to the source code of this file.

## Typedefs

typedef GWEN_TIME | GWEN_TIME

## Functions

GWENHYWFAR_API GWEN_TIME * | GWEN_CurrentTime ()
GWENHYWFAR_API int | GWEN_Time_AddSeconds (GWEN_TIME *ti, GWEN_TYPE_UINT32 secs)
GWENHYWFAR_API double | GWEN_Time_Diff (const GWEN_TIME *t1, const GWEN_TIME *t0)
GWENHYWFAR_API GWEN_TIME * | GWEN_Time_dup (const GWEN_TIME *t)
GWENHYWFAR_API void | GWEN_Time_free (GWEN_TIME *t)
GWENHYWFAR_API GWEN_TIME * | GWEN_Time_fromDb (GWEN_DB_NODE *db)
GWENHYWFAR_API GWEN_TIME * | GWEN_Time_fromSeconds (GWEN_TYPE_UINT32 s)
GWENHYWFAR_API GWEN_TIME * | GWEN_Time_fromString (const char *s, const char *tmpl)
GWENHYWFAR_API GWEN_TIME * | GWEN_Time_fromUtcString (const char *s, const char *tmpl)
GWENHYWFAR_API int | GWEN_Time_GetBrokenDownDate (const GWEN_TIME *t, int *days, int *month, int *year)
GWENHYWFAR_API int | GWEN_Time_GetBrokenDownTime (const GWEN_TIME *t, int *hours, int *mins, int *secs)
GWENHYWFAR_API int | GWEN_Time_GetBrokenDownUtcDate (const GWEN_TIME *t, int *days, int *month, int *year)
GWENHYWFAR_API int | GWEN_Time_GetBrokenDownUtcTime (const GWEN_TIME *t, int *hours, int *mins, int *secs)
GWENHYWFAR_API double | GWEN_Time_Milliseconds (const GWEN_TIME *t)
GWENHYWFAR_API GWEN_TIME * | GWEN_Time_new (int year, int month, int day, int hour, int min, int sec, int inUtc)
GWENHYWFAR_API GWEN_TYPE_UINT32 | GWEN_Time_Seconds (const GWEN_TIME *t)
GWENHYWFAR_API int | GWEN_Time_SubSeconds (GWEN_TIME *ti, GWEN_TYPE_UINT32 secs)
GWENHYWFAR_API int | GWEN_Time_toDb (const GWEN_TIME *t, GWEN_DB_NODE *db)
GWENHYWFAR_API int | GWEN_Time_toString (const GWEN_TIME *t, const char *tmpl, GWEN_BUFFER *buf)
GWENHYWFAR_API time_t | GWEN_Time_toTime_t (const GWEN_TIME *t)
GWENHYWFAR_API struct tm | GWEN_Time_toTm (const GWEN_TIME *t)
GWENHYWFAR_API int | GWEN_Time_toUtcString (const GWEN_TIME *t, const char *tmpl, GWEN_BUFFER *buf)

## Typedef Documentation

typedef struct GWEN_TIME GWEN_TIME

## Function Documentation

GWENHYWFAR_API GWEN_TIME* GWEN_CurrentTime | ( |  | ) |

GWENHYWFAR_API int GWEN_Time_AddSeconds | ( | GWEN_TIME * | ti,
|  | GWEN_TYPE_UINT32 | secs
| ) |

Adds the given number of seconds to the given GWEN_TIME.

Returns:
  0 if ok, !=0 on error (see Simplified Error Codes)

GWENHYWFAR_API double GWEN_Time_Diff | ( | const GWEN_TIME * | t1,
|  | const GWEN_TIME * | t0
| ) |

| Returns the difference between t1 and t2 in milliseconds

GWENHYWFAR_API GWEN_TIME* GWEN_Time_dup | ( | const GWEN_TIME * | t | ) |

GWENHYWFAR_API void GWEN_Time_free | ( | GWEN_TIME * | t | ) |

GWENHYWFAR_API GWEN_TIME* GWEN_Time_fromDb | ( | GWEN_DB_NODE * | db | ) |

GWENHYWFAR_API GWEN_TIME* GWEN_Time_fromSeconds | ( | GWEN_TYPE_UINT32 | s | ) |

| Creates a GWEN_TIME object from the return value of GWEN_Time_Seconds.

GWENHYWFAR_API GWEN_TIME* GWEN_Time_fromString | ( | const char * | s,
|  | const char * | tmpl
| ) |

Parses the data and time from the given string according to the template string (quite similar to sscanf).

The string is expected to contain the date/time in local time. The following characters are accepted in the template string:

Character | Meaning
Y | digit of the year
M | digit of the month
D | digit of the day of month
h | digit of the hour
m | digit of the minute
s | digit of the second

All other characters are ignored.
Some examples of valid patterns follow:

- "YYYYMMDD"
- "YYMMDD"
- "YY/MM/DD"
- "YYYYMMDD hh:mm:ss"
- "YYYYMMDD hh:mm"
- "YYYYMMDD hhmmss"
- et cetera

Returns:
  0 on error, a GWEN_TIME pointer otherwise

Parameters:

  | s | string containing the date/time
  | tmpl | template string

GWENHYWFAR_API GWEN_TIME* GWEN_Time_fromUtcString | ( | const char * | s,
|  | const char * | tmpl
| ) |

GWENHYWFAR_API int GWEN_Time_GetBrokenDownDate | ( | const GWEN_TIME * | t,
|  | int * | days,
|  | int * | month,
|  | int * | year
| ) |

| Returns the broken down date as local date.

GWENHYWFAR_API int GWEN_Time_GetBrokenDownTime | ( | const GWEN_TIME * | t,
|  | int * | hours,
|  | int * | mins,
|  | int * | secs
| ) |

| Returns the broken down time as local time.

GWENHYWFAR_API int GWEN_Time_GetBrokenDownUtcDate | ( | const GWEN_TIME * | t,
|  | int * | days,
|  | int * | month,
|  | int * | year
| ) |

| Returns the broken down time as UTC date (Greenwhich Mean time).

GWENHYWFAR_API int GWEN_Time_GetBrokenDownUtcTime | ( | const GWEN_TIME * | t,
|  | int * | hours,
|  | int * | mins,
|  | int * | secs
| ) |

| Returns the broken down time as UTC time (Greenwhich Mean time).

GWENHYWFAR_API double GWEN_Time_Milliseconds | ( | const GWEN_TIME * | t | ) |

| returns the time in milliseconds

GWENHYWFAR_API GWEN_TIME* GWEN_Time_new | ( | int | year,
|  | int | month,
|  | int | day,
|  | int | hour,
|  | int | min,
|  | int | sec,
|  | int | inUtc
| ) |

GWENHYWFAR_API GWEN_TYPE_UINT32 GWEN_Time_Seconds | ( | const GWEN_TIME * | t | ) |

| Returns the time in seconds since the epoch (00:00:00 UTC Jan 1, 1970).

GWENHYWFAR_API int GWEN_Time_SubSeconds | ( | GWEN_TIME * | ti,
|  | GWEN_TYPE_UINT32 | secs
| ) |

Subs the given number of seconds from the given GWEN_TIME.

Returns:
  0 if ok, !=0 on error (see Simplified Error Codes)

GWENHYWFAR_API int GWEN_Time_toDb | ( | const GWEN_TIME * | t,
|  | GWEN_DB_NODE * | db
| ) |

GWENHYWFAR_API int GWEN_Time_toString | ( | const GWEN_TIME * | t,
|  | const char * | tmpl,
|  | GWEN_BUFFER * | buf
| ) |

GWENHYWFAR_API time_t GWEN_Time_toTime_t | ( | const GWEN_TIME * | t | ) |

| Returns this date as a time_t value (see time(2)).

GWENHYWFAR_API struct tm GWEN_Time_toTm | ( | const GWEN_TIME * | t | ) |

| Returns this date as a struct tm (see ctime(3)) in the local time zone.

GWENHYWFAR_API int GWEN_Time_toUtcString | ( | const GWEN_TIME * | t,
|  | const char * | tmpl,
|  | GWEN_BUFFER * | buf
| ) |