blob: 20fc7f68be10b01b6df3f8e137e760c2fd3d6a5e [file] [log] [blame]
Benny Prijono4766ffe2005-11-01 17:56:59 +00001/* $Id$
Benny Prijonodd859a62005-11-01 16:42:51 +00002 */
3#include <pj/os.h>
4#include <pj/compat/time.h>
5
6///////////////////////////////////////////////////////////////////////////////
7
8PJ_DEF(pj_status_t) pj_gettimeofday(pj_time_val *tv)
9{
10 struct timeb tb;
11
12 PJ_CHECK_STACK();
13
14 ftime(&tb);
15 tv->sec = tb.time;
16 tv->msec = tb.millitm;
17 return PJ_SUCCESS;
18}
19
20PJ_DEF(pj_status_t) pj_time_decode(const pj_time_val *tv, pj_parsed_time *pt)
21{
22 struct tm *local_time;
23
24 PJ_CHECK_STACK();
25
26 local_time = localtime((time_t*)&tv->sec);
27
28 pt->year = local_time->tm_year+1900;
29 pt->mon = local_time->tm_mon;
30 pt->day = local_time->tm_mday;
31 pt->hour = local_time->tm_hour;
32 pt->min = local_time->tm_min;
33 pt->sec = local_time->tm_sec;
34 pt->wday = local_time->tm_wday;
35 pt->yday = local_time->tm_yday;
36 pt->msec = tv->msec;
37
38 return PJ_SUCCESS;
39}
40
41/**
42 * Encode parsed time to time value.
43 */
44PJ_DEF(pj_status_t) pj_time_encode(const pj_parsed_time *pt, pj_time_val *tv);
45
46/**
47 * Convert local time to GMT.
48 */
49PJ_DEF(pj_status_t) pj_time_local_to_gmt(pj_time_val *tv);
50
51/**
52 * Convert GMT to local time.
53 */
54PJ_DEF(pj_status_t) pj_time_gmt_to_local(pj_time_val *tv);
55
56