summaryrefslogtreecommitdiffstats
path: root/src/time64_limits.h
blob: 91079af51fa758746b5921bf54e972c2e5300e85 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
/*
   Maximum and minimum inputs your system's respective time functions
   can correctly handle.  time64.h will use your system functions if
   the input falls inside these ranges and corresponding USE_SYSTEM_*
   constant is defined.
*/

#ifndef TIME64_LIMITS_H
#define TIME64_LIMITS_H

/* Max/min for localtime() */
#define SYSTEM_LOCALTIME_MAX     2147483647
#define SYSTEM_LOCALTIME_MIN    -2147483647-1

/* Max/min for gmtime() */
#define SYSTEM_GMTIME_MAX        2147483647
#define SYSTEM_GMTIME_MIN       -2147483647-1

/* Max/min for mktime() */
static const struct tm SYSTEM_MKTIME_MAX = {
    7,
    14,
    19,
    18,
    0,
    138,
    1,
    17,
    0
#ifdef HAVE_TM_TM_GMTOFF
    ,-28800
#endif
#ifdef HAVE_TM_TM_ZONE
    ,(char*)"PST"
#endif
};

static const struct tm SYSTEM_MKTIME_MIN = {
    52,
    45,
    12,
    13,
    11,
    1,
    5,
    346,
    0
#ifdef HAVE_TM_TM_GMTOFF
    ,-28800
#endif
#ifdef HAVE_TM_TM_ZONE
    ,(char*)"PST"
#endif
};

/* Max/min for timegm() */
#ifdef HAVE_TIMEGM
static const struct tm SYSTEM_TIMEGM_MAX = {
    7,
    14,
    3,
    19,
    0,
    138,
    2,
    18,
    0
    #ifdef HAVE_TM_TM_GMTOFF
        ,0
    #endif
    #ifdef HAVE_TM_TM_ZONE
        ,(char*)"UTC"
    #endif
};

static const struct tm SYSTEM_TIMEGM_MIN = {
    52,
    45,
    20,
    13,
    11,
    1,
    5,
    346,
    0
    #ifdef HAVE_TM_TM_GMTOFF
        ,0
    #endif
    #ifdef HAVE_TM_TM_ZONE
        ,(char*)"UTC"
    #endif
};
#endif /* HAVE_TIMEGM */

#endif /* TIME64_LIMITS_H */