1 /***********************************************************************
2 * *
3 * This software is part of the ast package *
4 * Copyright (c) 1985-2010 AT&T Intellectual Property *
5 * and is licensed under the *
6 * Common Public License, Version 1.0 *
7 * by AT&T Intellectual Property *
8 * *
9 * A copy of the License is available at *
10 * http://www.opensource.org/licenses/cpl1.0.txt *
11 * (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
12 * *
13 * Information and Software Systems Research *
14 * AT&T Research *
15 * Florham Park NJ *
16 * *
17 * Glenn Fowler <gsf@research.att.com> *
18 * David Korn <dgk@research.att.com> *
19 * Phong Vo <kpv@research.att.com> *
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
tmequiv(Tm_t * tm)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