1# http://en.wikipedia.org/wiki/C_date_and_time_functions
2
3from libc.stddef cimport wchar_t
4
5cdef extern from "<time.h>" nogil:
6    ctypedef long clock_t
7    ctypedef long time_t
8
9    enum: CLOCKS_PER_SEC
10    clock_t clock()             # CPU time
11    time_t  time(time_t *)      # wall clock time since Unix epoch
12
13    cdef struct tm:
14        int  tm_sec
15        int  tm_min
16        int  tm_hour
17        int  tm_mday
18        int  tm_mon
19        int  tm_year
20        int  tm_wday
21        int  tm_yday
22        int  tm_isdst
23        char *tm_zone
24        long tm_gmtoff
25
26    int     daylight            # global state
27    long    timezone
28    char    *tzname[2]
29    void    tzset()
30
31    char    *asctime(const tm *)
32    char    *asctime_r(const tm *, char *)
33    char    *ctime(const time_t *)
34    char    *ctime_r(const time_t *, char *)
35    double  difftime(time_t, time_t)
36    tm      *getdate(const char *)
37    tm      *gmtime(const time_t *)
38    tm      *gmtime_r(const time_t *, tm *)
39    tm      *localtime(const time_t *)
40    tm      *localtime_r(const time_t *, tm *)
41    time_t  mktime(tm *)
42    size_t  strftime(char *, size_t, const char *, const tm *)
43    size_t  wcsftime(wchar_t *str, size_t cnt, const wchar_t *fmt, tm *time)
44
45    # POSIX not stdC
46    char    *strptime(const char *, const char *, tm *)
47