Ruby  2.1.3p242(2014-09-19revision47630)
timev.h
Go to the documentation of this file.
1 #ifndef RUBY_TIMEV_H
2 #define RUBY_TIMEV_H
3 
4 struct vtm {
5  VALUE year; /* 2000 for example. Integer. */
6  int mon; /* 1..12 */
7  int mday; /* 1..31 */
8  int hour; /* 0..23 */
9  int min; /* 0..59 */
10  int sec; /* 0..60 */
11  VALUE subsecx; /* 0 <= subsecx < TIME_SCALE. possibly Rational. */
12  VALUE utc_offset; /* -3600 as -01:00 for example. possibly Rational. */
13  int wday; /* 0:Sunday, 1:Monday, ..., 6:Saturday */
14  int yday; /* 1..366 */
15  int isdst; /* 0:StandardTime 1:DayLightSavingTime */
16  const char *zone; /* "JST", "EST", "EDT", etc. */
17 };
18 
19 #define TIME_SCALE 1000000000
20 
21 #ifndef TYPEOF_TIMEVAL_TV_SEC
22 # define TYPEOF_TIMEVAL_TV_SEC time_t
23 #endif
24 #ifndef TYPEOF_TIMEVAL_TV_USEC
25 # if INT_MAX >= 1000000
26 # define TYPEOF_TIMEVAL_TV_USEC int
27 # else
28 # define TYPEOF_TIMEVAL_TV_USEC long
29 # endif
30 #endif
31 
32 #if SIZEOF_TIME_T == SIZEOF_LONG
33 typedef unsigned long unsigned_time_t;
34 #elif SIZEOF_TIME_T == SIZEOF_INT
35 typedef unsigned int unsigned_time_t;
36 #elif SIZEOF_TIME_T == SIZEOF_LONG_LONG
37 typedef unsigned LONG_LONG unsigned_time_t;
38 #else
39 # error cannot find integer type which size is same as time_t.
40 #endif
41 
42 #endif
43