Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / tools / perl-5.8.0 / man / man3 / Time::Local.3
CommitLineData
86530b38
AT
1.\" Automatically generated by Pod::Man v1.34, Pod::Parser v1.13
2.\"
3.\" Standard preamble:
4.\" ========================================================================
5.de Sh \" Subsection heading
6.br
7.if t .Sp
8.ne 5
9.PP
10\fB\\$1\fR
11.PP
12..
13.de Sp \" Vertical space (when we can't use .PP)
14.if t .sp .5v
15.if n .sp
16..
17.de Vb \" Begin verbatim text
18.ft CW
19.nf
20.ne \\$1
21..
22.de Ve \" End verbatim text
23.ft R
24.fi
25..
26.\" Set up some character translations and predefined strings. \*(-- will
27.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
28.\" double quote, and \*(R" will give a right double quote. | will give a
29.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
30.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
31.\" expand to `' in nroff, nothing in troff, for use with C<>.
32.tr \(*W-|\(bv\*(Tr
33.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
34.ie n \{\
35. ds -- \(*W-
36. ds PI pi
37. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
38. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
39. ds L" ""
40. ds R" ""
41. ds C` ""
42. ds C' ""
43'br\}
44.el\{\
45. ds -- \|\(em\|
46. ds PI \(*p
47. ds L" ``
48. ds R" ''
49'br\}
50.\"
51.\" If the F register is turned on, we'll generate index entries on stderr for
52.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
53.\" entries marked with X<> in POD. Of course, you'll have to process the
54.\" output yourself in some meaningful fashion.
55.if \nF \{\
56. de IX
57. tm Index:\\$1\t\\n%\t"\\$2"
58..
59. nr % 0
60. rr F
61.\}
62.\"
63.\" For nroff, turn off justification. Always turn off hyphenation; it makes
64.\" way too many mistakes in technical documents.
65.hy 0
66.if n .na
67.\"
68.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
69.\" Fear. Run. Save yourself. No user-serviceable parts.
70. \" fudge factors for nroff and troff
71.if n \{\
72. ds #H 0
73. ds #V .8m
74. ds #F .3m
75. ds #[ \f1
76. ds #] \fP
77.\}
78.if t \{\
79. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
80. ds #V .6m
81. ds #F 0
82. ds #[ \&
83. ds #] \&
84.\}
85. \" simple accents for nroff and troff
86.if n \{\
87. ds ' \&
88. ds ` \&
89. ds ^ \&
90. ds , \&
91. ds ~ ~
92. ds /
93.\}
94.if t \{\
95. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
96. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
97. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
98. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
99. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
100. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
101.\}
102. \" troff and (daisy-wheel) nroff accents
103.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
104.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
105.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
106.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
107.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
108.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
109.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
110.ds ae a\h'-(\w'a'u*4/10)'e
111.ds Ae A\h'-(\w'A'u*4/10)'E
112. \" corrections for vroff
113.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
114.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
115. \" for low resolution devices (crt and lpr)
116.if \n(.H>23 .if \n(.V>19 \
117\{\
118. ds : e
119. ds 8 ss
120. ds o a
121. ds d- d\h'-1'\(ga
122. ds D- D\h'-1'\(hy
123. ds th \o'bp'
124. ds Th \o'LP'
125. ds ae ae
126. ds Ae AE
127.\}
128.rm #[ #] #H #V #F C
129.\" ========================================================================
130.\"
131.IX Title "Time::Local 3"
132.TH Time::Local 3 "2002-06-01" "perl v5.8.0" "Perl Programmers Reference Guide"
133.SH "NAME"
134Time::Local \- efficiently compute time from local and GMT time
135.SH "SYNOPSIS"
136.IX Header "SYNOPSIS"
137.Vb 2
138\& $time = timelocal($sec,$min,$hour,$mday,$mon,$year);
139\& $time = timegm($sec,$min,$hour,$mday,$mon,$year);
140.Ve
141.SH "DESCRIPTION"
142.IX Header "DESCRIPTION"
143These routines are the inverse of built-in perl functions \fIlocaltime()\fR
144and \fIgmtime()\fR. They accept a date as a six-element array, and return
145the corresponding \fItime\fR\|(2) value in seconds since the Epoch (Midnight,
146January 1, 1970). This value can be positive or negative.
147.PP
148It is worth drawing particular attention to the expected ranges for
149the values provided. The value for the day of the month is the actual day
150(ie 1..31), while the month is the number of months since January (0..11).
151This is consistent with the values returned from \fIlocaltime()\fR and \fIgmtime()\fR.
152.PP
153The \fItimelocal()\fR and \fItimegm()\fR functions perform range checking on the
154input \f(CW$sec\fR, \f(CW$min\fR, \f(CW$hour\fR, \f(CW$mday\fR, and \f(CW$mon\fR values by default. If you'd
155rather they didn't, you can explicitly import the \fItimelocal_nocheck()\fR
156and \fItimegm_nocheck()\fR functions.
157.PP
158.Vb 1
159\& use Time::Local 'timelocal_nocheck';
160.Ve
161.PP
162.Vb 3
163\& {
164\& # The 365th day of 1999
165\& print scalar localtime timelocal_nocheck 0,0,0,365,0,99;
166.Ve
167.PP
168.Vb 2
169\& # The twenty thousandth day since 1970
170\& print scalar localtime timelocal_nocheck 0,0,0,20000,0,70;
171.Ve
172.PP
173.Vb 3
174\& # And even the 10,000,000th second since 1999!
175\& print scalar localtime timelocal_nocheck 10000000,0,0,1,0,99;
176\& }
177.Ve
178.PP
179Your mileage may vary when trying these with minutes and hours,
180and it doesn't work at all for months.
181.PP
182Strictly speaking, the year should also be specified in a form consistent
183with \fIlocaltime()\fR, i.e. the offset from 1900.
184In order to make the interpretation of the year easier for humans,
185however, who are more accustomed to seeing years as two-digit or four-digit
186values, the following conventions are followed:
187.IP "\(bu" 4
188Years greater than 999 are interpreted as being the actual year,
189rather than the offset from 1900. Thus, 1963 would indicate the year
190Martin Luther King won the Nobel prize, not the year 2863.
191.IP "\(bu" 4
192Years in the range 100..999 are interpreted as offset from 1900,
193so that 112 indicates 2012. This rule also applies to years less than zero
194(but see note below regarding date range).
195.IP "\(bu" 4
196Years in the range 0..99 are interpreted as shorthand for years in the
197rolling \*(L"current century,\*(R" defined as 50 years on either side of the current
198year. Thus, today, in 1999, 0 would refer to 2000, and 45 to 2045,
199but 55 would refer to 1955. Twenty years from now, 55 would instead refer
200to 2055. This is messy, but matches the way people currently think about
201two digit dates. Whenever possible, use an absolute four digit year instead.
202.PP
203The scheme above allows interpretation of a wide range of dates, particularly
204if 4\-digit years are used.
205.PP
206Please note, however, that the range of dates that can be actually be handled
207depends on the size of an integer (time_t) on a given platform.
208Currently, this is 32 bits for most systems, yielding an approximate range
209from Dec 1901 to Jan 2038.
210.PP
211Both \fItimelocal()\fR and \fItimegm()\fR croak if given dates outside the supported
212range.
213.SH "IMPLEMENTATION"
214.IX Header "IMPLEMENTATION"
215These routines are quite efficient and yet are always guaranteed to agree
216with \fIlocaltime()\fR and \fIgmtime()\fR. We manage this by caching the start times
217of any months we've seen before. If we know the start time of the month,
218we can always calculate any time within the month. The start times
219are calculated using a mathematical formula. Unlike other algorithms
220that do multiple calls to \fIgmtime()\fR.
221.PP
222\&\fItimelocal()\fR is implemented using the same cache. We just assume that we're
223translating a \s-1GMT\s0 time, and then fudge it when we're done for the timezone
224and daylight savings arguments. Note that the timezone is evaluated for
225each date because countries occasionally change their official timezones.
226Assuming that \fIlocaltime()\fR corrects for these changes, this routine will
227also be correct.
228.SH "BUGS"
229.IX Header "BUGS"
230The whole scheme for interpreting two-digit years can be considered a bug.
231.PP
232The proclivity to \fIcroak()\fR is probably a bug.