Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
att
GitHub Repository: att/ast
Path: blob/master/src/lib/libast/tm/tmequiv.c
1810 views
1
/***********************************************************************
2
* *
3
* This software is part of the ast package *
4
* Copyright (c) 1985-2011 AT&T Intellectual Property *
5
* and is licensed under the *
6
* Eclipse Public License, Version 1.0 *
7
* by AT&T Intellectual Property *
8
* *
9
* A copy of the License is available at *
10
* http://www.eclipse.org/org/documents/epl-v10.html *
11
* (with md5 checksum b35adb5213ca9657e911e9befb180842) *
12
* *
13
* Information and Software Systems Research *
14
* AT&T Research *
15
* Florham Park NJ *
16
* *
17
* Glenn Fowler <[email protected]> *
18
* David Korn <[email protected]> *
19
* Phong Vo <[email protected]> *
20
* *
21
***********************************************************************/
22
#pragma prototyped
23
/*
24
* Glenn Fowler
25
* AT&T Research
26
*
27
* time_t conversion support
28
*/
29
30
#include <tm.h>
31
32
/*
33
* use one of the 14 equivalent calendar years to determine
34
* daylight savings time for future years beyond the range
35
* of the local system (via tmxtm())
36
*/
37
38
static const short equiv[] =
39
{
40
2006, 2012,
41
2001, 2024,
42
2002, 2008,
43
2003, 2020,
44
2009, 2004,
45
2010, 2016,
46
2005, 2000,
47
};
48
49
/*
50
* return the circa 2000 equivalent calendar year for tm
51
*/
52
53
int
54
tmequiv(Tm_t* tm)
55
{
56
return tm->tm_year < (2038 - 1900) ? (tm->tm_year + 1900) : equiv[tm->tm_wday + tmisleapyear(tm->tm_year)];
57
}
58
59