cvs commit: perlfaq perlfaq4.pod
[email protected] (brian d foy)
| Newsgroups | perl.cvs.perlfaq |
|---|---|
| Message-ID | <[email protected]> |
cvsuser 03/01/31 09:36:16 Modified: . perlfaq4.pod Log: * re-jiggered the question to get rid of the hyphens * expanded the answer using POSIX, Time::Local, and Date::Calc Revision Changes Path 1.41 +27 -6 perlfaq/perlfaq4.pod Index: perlfaq4.pod =================================================================== RCS file: /cvs/public/perlfaq/perlfaq4.pod,v retrieving revision 1.40 retrieving revision 1.41 diff -u -w -r1.40 -r1.41 --- perlfaq4.pod 26 Jan 2003 17:43:21 -0000 1.40 +++ perlfaq4.pod 31 Jan 2003 17:36:16 -0000 1.41 @@ -1,6 +1,6 @@ =head1 NAME -perlfaq4 - Data Manipulation ($Revision: 1.40 $, $Date: 2003/01/26 17:43:21 $) +perlfaq4 - Data Manipulation ($Revision: 1.41 $, $Date: 2003/01/31 17:36:16 $) =head1 DESCRIPTION @@ -353,12 +353,33 @@ =head1 Data: Dates -=head2 How do I find the week-of-the-year/day-of-the-year? +=head2 How do I find the day or week of the year? -The day of the year is in the array returned by localtime() (see -L<perlfunc/"localtime">): +The localtime function returns the day of the week. Without an +argument localtime uses the current time. - $day_of_year = (localtime(time()))[7]; + $day_of_year = (localtime)[7]; + +The POSIX module can also format a date as the day of the year or +week of the year. + + use POSIX qw/strftime/; + my $day_of_year = strftime "%j", localtime; + my $week_of_year = strftime "%W", localtime; + +To get the day of year for any date, use the Time::Local module to get +a time in epoch seconds for the argument to localtime. + + use POSIX qw/strftime/; + use Time::Local; + my $week_of_year = strftime "%W", + localtime( timelocal( 0, 0, 0, 18, 11, 1987 ) ); + +The Date::Calc module provides two functions for to calculate these. + + use Date::Calc; + my $day_of_year = Day_of_Year( 1987, 12, 18 ); + my $week_of_year = Week_of_Year( 1987, 12, 18 ); =head2 How do I find the current century or millennium?