Time::DayOfWeek - calculate which Day-of-Week a date is
This documentation refers to version 1.8 of Time::DayOfWeek, which was released on Fri Jul 22 10:16:29:07 -0500 2016.
#!/usr/bin/perl use strict;use warnings;use utf8;use v5.10; use Time::DayOfWeek qw(:dow); my ($year, $month, $day) = (2003, 12, 7); say "The Day-of-Week of $year/$month/$day (YMD) is: ", DayOfWeek($year, $month, $day); say 'The 3-letter abbreviation of the Dow is: ', Dow( $year, $month, $day); say 'The 0-based index of the DoW is: ', DoW( $year, $month, $day);
This module just calculates the Day-of-Week for any particular date. It was inspired by the clean Time::DaysInMonth module written by David Muir Sharnoff <Muir@Idiom.Com>.
DoW(<Year>, <Month>, <Day>)
Time::DayOfWeek's core function which does the calculation and returns the weekday index answer between 0 and 6. If no Year is supplied, 2000 C.E. is assumed. If no Month or Day is supplied, they are set to 1. Months are 1-based with values between 1 and 12. Days similarly range from 1 through 31.
DoW() is the only function that is exported from a normal 'use Time::DayOfWeek;' command. Other functions can be imported into the local namespace explicitly or with the following tags:
:all - every function described here :dow - only DoW(), Dow(), and DayOfWeek() :nam - only DayNames() and MonthNames() :day - everything but MonthNames()
Dow(<Year>, <Month>, <Day>)
Dow() is the same as DoW() above but returns 3-letter day abbreviations running from 'Sun' through 'Sat'.
DayOfWeek(<Year>, <Month>, <Day>)
DayOfWeek() is the same as DoW() above but returns full day names from 'Sunday' through 'Saturday'.
DayNames() can override default day names with the strings in @NewDayNames. The current list of day names is returned so call DayNames() with no parameters to obtain a list of the default day names.
An example call for Spanish days would be:
DayNames('Domingo', 'Lunes', 'Martes', 'Miercoles', 'Jueves', 'Viernes', 'Sabado');
MonthNames() has also been included to provide a centralized name set. Just like DayNames(), this function returns the current list of month names so call it with no parameters to obtain a list of the default month names.
Revision history for Perl extension Time::DayOfWeek:
- - 1.8 G7MMAGT7 Fri Jul 22 10:16:29:07 -0500 2016
* updated license to GPLv3
* removed PT from VERSION
- - 1.6.A6FFxZB Tue Jun 15 15:59:35:11 2010
* had to bump minor version to keep them ascending
- - 1.4.A6FCO7V Tue Jun 15 12:24:07:31 2010
* added hack to shift days right one between Feb2008..2009 (still not sure why algorithm skewed)
- - 1.4.75R5ulZ Sun May 27 05:56:47:35 2007
* added kwalitee && POD tests, bumped minor version
* condensed code && moved POD to bottom
- - 1.2.4CCMRd5 Sun Dec 12 22:27:39:05 2004
* updated License
- - 1.0.429BmYk Mon Feb 9 11:48:34:46 2004
* updated DoW param tests to turn zero month or day to one
* updated POD to contain links
- - 1.0.41M4ecn Thu Jan 22 04:40:38:49 2004
* made bin/dow as EXE_FILES && added named month param detection
- - 1.0.3CNH7Fs Tue Dec 23 17:07:15:54 2003
* removed most eccentric misspellings
- - 1.0.3CCA4sO Fri Dec 12 10:04:54:24 2003
* removed indenting from POD NAME field
- - 1.0.3CB7PxT Thu Dec 11 07:25:59:29 2003
* added month name data and tidied up for release
- - 1.0.3C7IOam Sun Dec 7 18:24:36:48 2003
* wrote pod and made tests
- - 1.0.3C7Exdx Sun Dec 7 14:59:39:59 2003
* original version
- - figure out why 2008 needed increment hack
- - test that UTF-8 characters work in MonthNames and DayNames
- - write many more tests for boundary conditions
From the command shell, please run:
`perl -MCPAN -e "install Time::DayOfWeek"`
or uncompress the package and run the standard:
`perl Makefile.PL; make; make test; make install` or if you don't have `make` but Module::Build is installed, try: `perl Build.PL; perl Build; perl Build test; perl Build install`
Most source code should be Free! Code I have lawful authority over is and shall be! Copyright: (c) 2003-2016, Pip Stuart. Copyleft : This software is licensed under the GNU General Public License (version 3 or later). Please consult HTTP://GNU.Org/licenses/gpl-3.0.txt for important information about your freedom. This is Free Software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. See HTTP://FSF.Org for further information.
Pip Stuart <Pip@CPAN.Org>