Date::Manip - Date manipulation routines
Date::Manip is a series of modules designed to make any common date/time
operation easy to do. Operations such as comparing two times, determining a
date a given amount of time from another, or parsing international times are
all easily done. It deals with time as it is used in the Gregorian calendar
(the one currently in use) with full support for time changes due to daylight
From the very beginning, the main focus of Date::Manip has been to be able to do
ANY desired date/time operation easily. Many other modules exist which may do
a subset of these operations quicker or more efficiently, but no other module
can do all of the operations available in Date::Manip.
Since many other date/time modules exist, some of which may do the specific
operation(s) you need faster, be sure to read "SHOULD I USE
DATE::MANIP" in Date::Manip::Misc before deciding which of the Date and
Time modules from CPAN is for you. However, if you want one module to do it
all, Date::Manip is the one to use.
Date::Manip has functionality to work with several fundamental types of data.
- The word date is used extensively here and is somewhat
misleading. In Date::Manip, a date consists of three pieces of
information: a calendar date, a time of day, and time zone information.
Calendar dates and times are fully handled. Time zones are handled as
well, but depending on how you use Date::Manip, there may be some
limitations as discussed below.
- A delta is an amount of time (i.e. the amount of time
between two different dates). A delta refers only to an amount of time. It
includes no information about a starting or ending date/time. Most people
will think of a delta as an amount of time, but the term 'time' is already
used so much in this module that I didn't want to use it here in order to
- A recurring event is something which occurs on a regular
- holidays and events
- Holidays and events are basically named dates or
Among other things, Date::Manip allow you to:
- Enter a date in practically any format you choose.
- Compare two dates, entered in widely different formats to
determine which is earlier.
- Extract any information you want from a date using a format
string similar to the Unix date command.
- Determine the amount of time between two dates, or add an
amount of time to a date to get a second date.
- Work with dates with dates using international formats
(foreign month names, 12/10/95 referring to October rather than December,
- To find a list of dates where a recurring event
Each of these tasks is trivial (one or two lines at most) with this package.
There are three different ways to use Date::Manip . There are three interfaces
(version 5 functional interface, version 6 functional, and version 6
object-oriented). A complete description of each is included in the
Date::Manip::Interfaces document. The recommended (and the only one with
access to the full functionality of the module) is using the Object-Oriented
Because Date::Manip performs so many operations, the documentation is extensive.
It includes the following documents:
Read this for a detailed description of each of the interfaces, including
information on how to choose and use the interface best suited to your
- A complete description of the functional interfaces
available. NOTE: it is recommended that you use the OO interface wherever
possible as the functional interfaces have some imitations.
- The version 5 functional interface
- The version 6 functional interface
An introduction to the Date::Manip classes used by the object-oriented interface
and how to configure them:
- An overview of the various Date::Manip modules, and how to
- Information for configuring Date::Manip
These are the modules for using the object-oriented interface.
- This is the base class. All other classes listed here
inherit the methods defined in this class.
- A module for doing low-level date operations.
- A module for working with time zones.
- The module for working with dates.
- The module for working with deltas (amount of time).
- The module for working with recurrences (recurring
- Time zone abbreviations used in the version 5
- Time zone data included in Date::Manip used in the version
- Detailed information on how date calculations are
- Information on defining and using holidays and events.
- A sample config file.
- Information about the languages supported by Date::Manip
and how to add a new language.
- A description of the parseable words in each language
currently supported by Date::Manip.
- Information on changes necessary to scripts when upgrading
from 5.xx to 6.xx.
- Change log for Date::Manip 5.xx
- Differences between version 5.xx and 6.00 (including
information on upgrading); this contains more details than the
- Change log for Date::Manip 6.xx
- Miscellaneous information about Date::Manip (who should use
- Musings on the history of Date::Manip written around it's
- Common problems and instructions for reporting bugs.
- Examples of how to use Date::Manip.
This script is free software; you can redistribute it and/or modify it under the
same terms as Perl itself.
Sullivan Beck (firstname.lastname@example.org)