]> git.llucax.com Git - software/druntime.git/blob - import/stdc/time.d
Fixed a few build script issues on posix, including a bug in looking for some of...
[software/druntime.git] / import / stdc / time.d
1 /**
2  * D header file for C99.
3  *
4  * Copyright: Public Domain
5  * License:   Public Domain
6  * Authors:   Sean Kelly
7  * Standards: ISO/IEC 9899:1999 (E)
8  */
9 module stdc.time;
10
11 private import stdc.config;
12 private import stdc.stddef;
13
14 extern (C):
15
16 version( Windows )
17 {
18     struct tm
19     {
20         int     tm_sec;     // seconds after the minute - [0, 60]
21         int     tm_min;     // minutes after the hour - [0, 59]
22         int     tm_hour;    // hours since midnight - [0, 23]
23         int     tm_mday;    // day of the month - [1, 31]
24         int     tm_mon;     // months since January - [0, 11]
25         int     tm_year;    // years since 1900
26         int     tm_wday;    // days since Sunday - [0, 6]
27         int     tm_yday;    // days since January 1 - [0, 365]
28         int     tm_isdst;   // Daylight Saving Time flag
29     }
30 }
31 else
32 {
33     struct tm
34     {
35         int     tm_sec;     // seconds after the minute [0-60]
36         int     tm_min;     // minutes after the hour [0-59]
37         int     tm_hour;    // hours since midnight [0-23]
38         int     tm_mday;    // day of the month [1-31]
39         int     tm_mon;     // months since January [0-11]
40         int     tm_year;    // years since 1900
41         int     tm_wday;    // days since Sunday [0-6]
42         int     tm_yday;    // days since January 1 [0-365]
43         int     tm_isdst;   // Daylight Savings Time flag
44         c_long  tm_gmtoff;  // offset from CUT in seconds
45         char*   tm_zone;    // timezone abbreviation
46     }
47 }
48
49 alias c_long time_t;
50 alias c_long clock_t;
51
52 version( Windows )
53 {
54     clock_t CLOCKS_PER_SEC = 1000;
55 }
56 else version( darwin )
57 {
58     clock_t CLOCKS_PER_SEC = 100;
59 }
60 else version( freebsd )
61 {
62     clock_t CLOCKS_PER_SEC = 128;
63 }
64 else
65 {
66     clock_t CLOCKS_PER_SEC = 1000000;
67 }
68
69 clock_t clock();
70 double  difftime(time_t time1, time_t time0);
71 time_t  mktime(tm* timeptr);
72 time_t  time(time_t* timer);
73 char*   asctime(in tm* timeptr);
74 char*   ctime(in time_t* timer);
75 tm*     gmtime(in time_t* timer);
76 tm*     localtime(in time_t* timer);
77 size_t  strftime(char* s, size_t maxsize, in char* format, in tm* timeptr);
78 size_t  wcsftime(wchar_t* s, size_t maxsize, in wchar_t* format, in tm* timeptr);
79
80 version( Windows )
81 {
82     void  tzset();
83     void  _tzset();
84     char* _strdate(char* s);
85     char* _strtime(char* s);
86
87     wchar_t* _wasctime(tm*);
88     wchar_t* _wctime(time_t*);
89     wchar_t* _wstrdate(wchar_t*);
90     wchar_t* _wstrtime(wchar_t*);
91 }
92 else version( linux )
93 {
94     void tzset();
95 }
96 else version( freebsd )
97 {
98     void tzset();
99 }