Wireshark
4.7.0
The Wireshark network protocol analyzer
Loading...
Searching...
No Matches
wsutil
epochs.h
Go to the documentation of this file.
1
12
#ifndef __EPOCHS_H__
13
#define __EPOCHS_H__
14
15
#include <glib.h>
16
17
/*
18
* Deltas between the epochs for various non-UN*X time stamp formats and
19
* the January 1, 1970, 00:00:00 (proleptic?) UTC epoch for the UN*X time
20
* stamp format.
21
*
22
* XXX - All of these are unsigned, but note that most of these epochs are
23
* before the UN*X epoch but one is afterwards, which changes whether the
24
* delta should be subtracted or added to a time in the other epoch to
25
* produce a time_t in the UN*X epoch. Perhaps they should be signed,
26
* or there should macros that do the arithmetic and return a time_t?
27
*/
28
29
/*
30
* 1900-01-01 00:00:00 (proleptic?) UTC.
31
* Used by a number of time formats.
32
*/
33
#define EPOCH_DELTA_1900_01_01_00_00_00_UTC 2208988800U
34
35
/*
36
* 1904-01-01 00:00:00 (proleptic?) UTC.
37
* Used in the classic Mac OS, and by formats, such as MPEG-4 Part 14 (MP4),
38
* which is based on Apple's QuickTime format.
39
*/
40
#define EPOCH_DELTA_1904_01_01_00_00_00_UTC 2082844800U
41
42
/*
43
* 1601-01-01 (proleptic Gregorian) 00:00:00 (proleptic?) UTC.
44
* The Windows NT epoch, used in a number of places, as it is
45
* the start of a 400 year Gregorian cycle.
46
*
47
* This is
48
*
49
* 369*365.25*24*60*60-(3*24*60*60+6*60*60)
50
*
51
* or equivalently,
52
*
53
* (89*4*365.25+(3*4+1)*365)*24*60*60
54
*
55
* 1970-1601 is 369; 365.25 is the average length of a year in days,
56
* including leap years.
57
*
58
* 369 = 4*92 + 1, so there are 92 groups of 4 consecutive years plus
59
* one leftover year, 1969, with 365 days.
60
*
61
* All but three of the groups of 4 consecutive years average 365.25 days
62
* per year, as they have one leap year in the group. However, 1700, 1800,
63
* and 1900 were not leap years, as, while they're all evenly divisible by 4,
64
* they're also evenly divisible by 100, but not evenly divisible by 400.
65
*
66
* So we have 89 groups of 4 consecutive years that average 365.25
67
* days per year, 3 groups of 4 consecutive years that average 365 days
68
* (as they lack a leap year), and one leftover year, 1969, that is
69
* 365 days long.
70
*/
71
#define EPOCH_DELTA_1601_01_01_00_00_00_UTC UINT64_C(11644473600)
72
73
/*
74
* 2000-01-01 00:00:00 UTC.
75
* Used by the Zigbee Zigbee Cluster Library protocol.
76
*
77
* This is *after* the UN*X epoch, so to convert from a time in seconds from
78
* this epoch this delta needs to be *added*, unlike the other values.
79
*/
80
#define EPOCH_DELTA_2000_01_01_00_00_00_UTC UINT64_C(((3*365 + 366)*7 + 2*365)*24*3600)
81
82
#endif
/* __EPOCHS_H__ */
Generated by
1.9.8