# Date::Manip::Changes5 - phpMan

## NAME
    [Date::Manip::Changes5] - changes in [Date::Manip] 5.xx

## SYNOPSIS
    This describes the changes made to the [Date::Manip] module up to the time
    that 6.00 was released. Because 6.00 required a newer version of perl
    (5.10 or higher), the old version was maintained.

    When [Date::Manip] 6.10 was released, both versions were bundled together
    (though how it was bundled changed when 6.14 was released).

    This document describes all changes made to the old version of
    [Date::Manip].

    For the most part, [Date::Manip] has remained backward compatible at every
    release, but occasionally, a change is made which is backward
    incompatible. These are marked with an exclamation mark (!).

VERSION 5.66 (Released with 6.51)
    Fixed a bug in Date_ConvTZ
        Applied a patch supplied by Zhenyi Zhou which fixes a bug in
        Date_ConvTZ where passing in an empty string did not work.

VERSION 5.65 (Released with 6.37)
    As of December 2012, Version 5 of [Date::Manip] will no longer be
    modified. The 5.xx version was updated to 5.65 (but no changes were
    made), and this version is expected to be the final release in the 5.xx
    series.

    The one exception is that if someone submits a patch that applies
    cleanly and causes zero failures in the test suite, I will consider
    adding it on a case-by-cast bases.

    Please use [Date::Manip] 6.xx instead.

VERSION 5.64 (Released with 6.32)
    Better handling of '0000' timezone
        Applied a patch supplied by Ed Avis that improves handling of the
        '0000' timezone..

VERSION 5.63 (Released with 6.26)
    Fixed business mode calculation
        Applied a patch that I received some time ago to fix a business mode
        calculation. Steve Tempest

VERSION 5.62 (Released with 6.21)
    No changes

VERSION 5.61 (Released with 6.20)
    No changes

VERSION 5.60 (Released with 6.14)
    Fully integrated with 6.xx
        As of [Date::Manip] 6.14, the 5.xx release is fully integrated into
        the distribution. Both will be installed automatically and you can
        switch between them (if you have a recent version of perl). This
        simplifies the package management process considerably. The downside
        is that [Date::Manip] 6.xx will be installed, even if you do not have
        a recent version of perl and cannot use it.

VERSION 5.59 (Released with 6.12)
    Test fixes
        Fix tests to work better on windows.

VERSION 5.58 (Released with 6.11)
    Test fixes
        Fixed a bug in some of the tests that were causing two tests to
        fail. JD

        Explicitly set TZ in all tests to avoid some failures (it got left
        out of a few when it was bundled with 6.10).

VERSION 5.57 (Released with 6.10)
    (*) Combined 5.xx and 6.xx
        As of 6.10, Date-Manip-6.xx will contain both the [Date::Manip] 5.xx
        and 6.xx modules. If perl 5.10 or higher is available, the 6.xx
        version will be installed. For older versions of perl, the 5.xx
        version will be installed.

        This will allow all of the automatic module tools to work correctly.

    Bug fixes
        Fixed a bug where years earlier than 1000 AD failed in calculations.
        John

    Time zone fixes
        Improved time zone detection. Stepan Kasal

    Documentation fixes
        Minor improvements. Josef Kreulich

VERSION 5.56 (2010-02-24)
    Bug fixes
        Date_PrevWorkDay and documentation fix. RT #17005

        I accidentally included a require 5.10 which made [Date::Manip] not
        work with earlier versions of perl. Nicholas Riley

VERSION 5.55 (2010-02-22)
    (*) Added time zone abbreviations
        [Date::Manip] 5.xx now includes all of the time zone abbreviations
        from version 6.xx (i.e. all of the abbreviations from the Olsen
        database).

    Documentation fixes
        Typo fix. ddascalescu

VERSION 5.54 (2008-05-09)
    Released

VERSION 5.53 (DEVELOPMENT)
    Bug fixes
        Fix so it won't fail with "Too early to specify a build action"

    CPANTS changes
        Final changes to meet requirements on <http://cpants.perl.org/>

VERSION 5.52 (2008-05-08)
    Released

VERSION 5.51 (DEVELOPMENT)
    Bug fixes
        Fixed bug where the wrong version was in Build.PL

    CPANTS changes
        Additional changes to meet requirements on <http://cpants.perl.org/>

VERSION 5.50 (2008-05-05)
    Released

VERSION 5.49 (DEVELOPMENT)
    New features
        Added "ereyesterday". Ed Avis

    Time zone fixes
        Added time zones. Damyan Ivanov, Ernesto Hernandez-Novich, Gregor
        Herrmann, Nicholas Riley, Enrique Verdes, Alexander Litvinov

    Documentation fixes
        Corrected typo in %G and %L format descriptions. Troy A. Bollinger

    CPANTS changes
        Added Build.PL and several other things to meet requirements on
        <http://cpants.perl.org/>

VERSION 5.48 (2007-11-27)
    Released

VERSION 5.47 (DEVELOPMENT)
    Bug fixes
        Fixed the version number. John R. Daily

        Fixed a warning when the date command not present. Daniel Hahler

        Fixed a bug where recurrences of the form 0:1*, 0:0:1*, etc.,
        incorrectly required a base date. Gerry Lawrence

        Fixed a bug where "substring" was used instead of "substr".

    Time zone fixes
        Fixed a problem in the WEST time zone. Cristina Nunes

        Added time zone. Kimmo R. M. Hovi

    Documentation fixes
        Revised some of the documentation about Y2K (given that it's in the
        past) and the 2007 US daylight saving time rule changes.

VERSION 5.46 (2007-02-21)
    Released

VERSION 5.45 (DEVELOPMENT)
    New features
        Added "overmorrow". Ed Avis

    Bug fixes
        Fixed bug in parsing ISO 8601 dates. Paul Schinder

        Fixed a bug in UnixDate for years before 1000 AD. Joaquin Ferrero

        Fixed a bug where "today" wasn't case insensitive. Pedro Rodrigues

        Fixed a bug where business/approximate mode wasn't correctly used in
        DateCalc. Mark T. Kennedy

        Bug in DateCalc where you couldn't pass undef as the errref. Alex
        Howansky

        Bug where cygwin wasn't using the date command. Rafael Kitover

    Time zone fixes
        New time zones. Khairil Yusof, Andy Spiegel, Ernesto Rapetti

        New time zones. Robin Norwood

        Fixed Russian time zones. Yuri Kovalenko

    Language fixes
        Language fix for Danish. Claus Rasmussen

        Language fix for German. Andreas Dembach

    Documentation fixes
        Minor documentation improvement. Caminati Carlo

        Lots of spelling fixes. Asaf Bartov

VERSION 5.44 (2005-06-02)
    Released

VERSION 5.43 (DEVELOPMENT)
    (!) (*) Recurrences revisited
        The behavior of some elements of recurrences changed. These included
        making the week element (N) refer to the Nth occurrence of a day of
        the week in the week, month, or year. It is now possible to look at
        the 3rd Friday of every month for example.

        Y-0-WOY-DOW now refers to the WOY'th occurrence of DOW instead of
        the ISO 8601 date Y-W(WOY)-DOY. Also, changed Y-0-WOY-0 to refer to
        the WOY'th occurrence of FirstDay, and got rid of the MW and MD
        flags. Many other similar changes.

    (!) Changed %x format in UnixDate
        The %x format used to be equivalent to %D (%m/%d/%y), but it has
        been modified to use the DateFormat config variable, so it may
        return %d/%m/%y if a non-US DateFormat is specified.

    New features
        Added TodayIsMidnight. Reuben Thomas

        Added "approx" mode to Delta_Format and reversed change to default
        Delta_Format behavior to the one from version 5.40. Based on
        discussion with Adam Spiers.

        Added %O UnixDate format. Martin Thurn

    Bug fixes
        Fixed a bug is ParseRecur where values passed in were no overriding
        old values in the recurrence. Scott Barker (reported to the Debian
        bugs list).

        Fix for a potential problem in the "0000" time zone. Ed Avis

        Changed taint check to be the one in [perlsec(1)]. Max Kalika

        Minor fix so DateInit("VAR=") will work. Thomas Bohme

        Fixed a bug where business mode was kept operative even after the
        calculation was over. Emiliano Bruni

        Minor change to run under cygwin. Niel Markwick

        Minor VMS fix. Martin P.J. Zinser

        Small fix to taint checking. David Worenklein

        Fixed a problem where deltas were getting misinterpreted as dates.
        Harry Zhu

        Fixed a bug in ParseRecur where "last day of every March" couldn't
        be done. Andras Karacsony

        Fixed a bug in business mode calculations. Tracy L Sanders

        Sorted all events and dates returned by Events_List. This fixes
        problems with tests on some versions of perl. Tulan

        Modified %x UnixDate format to use DateFormat config variable. Matt
        Lyons

    Time zone fixes
        Fixed a problem with single character military time zones (T and W)
        conflicting with ISO 8601 T and W dates. Hugo Cornelis

        Small correction to Brazil time zones. John McDonald

        Added time zones. Michael Wood-Vasey, Don Robertson, Michael D.
        Setzer II, Andres Tarallo

    Language fixes
        Fixed German translations. Oliver Scheit

        Minor corrections to Italian. Nicola Pedrozzi

        Added the language Catalan. Xavi Drudis

    Documentation fixes
        Minor doc fixes Reuben Thomas, Ed Avis, Thomas Winzig

        Clarified documentation on %W/%G/%U/%L formats. Joel Savignon

VERSION 5.42a 2003-07-03
    Test fixes
        A quick fix to replace a faulty test.

VERSION 5.42 (2003-07-02)
    Released
        Number changed to distinguish between the development release (5.41)
        and the official release.

VERSION 5.41 (DEVELOPMENT)
    As of 5.41, odd numbered releases are development (and appear only on my
    page). Even number releases are official releases submitted to CPAN.

    (!) Changed path separator for VMS
        Since ":" is used in some VMS paths, it should not have been used as
        the path separator. It has been changed to a newline ("\n")
        character.

    (!) Delta_Format behavior changed
        The entire delta is exact if no month component is present
        (previously, no year or month component could be present). Due to
        discussion with Tim Turner.

    Bug fixes
        Small patch for OpenVMS. Martin P.J. Zinser

        Minor enhancement to ParseRecur. Randy Harmon

        Fixed a bug involving business deltas with negative hours. Ludovic
        Dubost

        Added some support for NetWare. Chris Shields

        Applied some robustness patches. Ed Avis

        Fixed a bug with years <1000. Jonathan Callahan

        Patch to make Manip.pm -Mstrict clean and better VMS support. Peter
        Prymmer

        Fixed a bug in "1st Saturday of 2005" format. Maurice Aubrey

        Taint check insecure $ENV{PATH} fix. Ed Avis

        Patch to allow deltas of the form "+ -1 day" to work. Ed Avis

        Removed ampersands from function calls in documentation to fit new
        perl coding standards. Bill Pollock

        Fixed a bug where spaces in a date caused problems in German (due to
        the number 1st, 2nd, etc. being 1., 2., etc.). Erik Roderwald

    Time zone fixes
        Minor bug fix where /etc/time zone not correctly read. Jacek Nowacki

        Made the UnixDate %Z format work with numeric time zones. Michael
        Isard

        Fixed bug where -HH:MM and +HH:MM were not being accepted as valid
        time zones. Hank Barta

        Fixed a bug where time zones -HH:MM weren't handled in ISO 8601
        dates. Ed Avis

        Added some help for VMS time zones. Don Slutz

        Added some checking to the time zone determination. Ed Avis

        Added time zones. David Coppit, Daniel Serodio, Fabian Mandelbaum,
        Raul Dias, Pedro Melo CUNHA, Roman Y Malakhov, David Whiting, Khaled
        Mostaguir, Jason King

    Language fixes
        (*) Replaced all non-ASCII characters with hex representations to
        avoid the malformed UTF-8 character warnings. Ed Avis

        Added Russian translation. Dapi

        Additions to Dutch translation. Willem

        Patch to French support. Patrick Turmel

        Added Tues/Thur abbreviations. Martin Thurn

        Added Turkish. Giray

        Added Danish. Jesper Dalberg A patch for Danish was send by Jorgen
        Norgaard previously, and I somehow overlooked it. I apologize for
        that.

    Test fixes
        Added runtests.bat contributed by Lon Amick

    Documentation fixes
        Minor doc fix. Jeremy Tietsort

        Fixed spelling of Veteran's day. Dirk Eddelbuettel

        Documentation improvements. James Olsen

VERSION 5.40 (2001-06-07)
    New features
        Added support for negative values is "epoch SECS" type dates. Larry
        Warner

        Added NWD/PWD/DWD flags to ParseRecur. Peter Wyngaard

    Bug fixes
        Fixed a warning. Edward Avis

        Fixed a bug where the date wasn't rolling over when parsing dates
        containing only times. James L. Gordon

        Fixed a bug where some times were defaulting to the current time
        instead of 00:00:00. Edward Avis

        Fixed a bug in Date_NthDayOfYear with decimal days. Olga Polyakov

        Fixed a bug where ParseDateDelta returned a delta if nothing was
        passed in. Jim Hranicky

        Fixed a bug where noon was case sensitive. Bion Pohl

        Fixed a bug where dateTtime wasn't parsed. Jeremy Brinkley

        Fixed a bug in holiday parsing involving recurrences. Jerry Wilcox

        Fixed a bug where an invalid date passed to Date_IsWorkDay produced
        an error message. Mark Rejhon

        Fixed a bug where EraseHolidays wasn't taking affect correctly.
        Chateauvieux Martial

        Fixed a bug where the list produced by Date_Init couldn't be passed
        back in to Date_Init. James Elson

    Time zone fixes
        Added `date +%Z` support in Date_TimeZone. Mike Bristow

        Fixed a warning if the time zone is supplied as a +HHMM format.
        Viola Mauro

        Fixed South African time zone. David Sieborger

    Documentation fixes
        Added an example. Philip Jones

VERSION 5.39 (2000-06-27)
    Bug fixes
        `date` uses the user's path unless taint checking is on.

        @::DatePath used instead of @[Date::Manip::DatePath] incorrectly.
        Fixed by John Labovitz.

        Fixed a bug where times such as "5 seconds ago" were not changing
        over time. Matthew R. Sheahan

    Time zone fixes
        Added /etc/time zone support to &Date_TimeZone. Dirk Eddelbuettel

        Added time zones. Dirk Eddelbuettel, Eli Selinger

VERSION 5.38 (2000-05-23)
    (*) Added Events
        Added Events section to config file and Events_List routine.
        Prompted by Greg Schiedler and paid for by Alan Cezar.

    (!) Removed Date_DaysSince999
        The Date_DaysSince999 function (deprecated in 5.35) has been
        removed.

    New features
        Added support for ISO8601 dates of the format dateTtime. Jason
        Pierce

        Got rid of the "use Cwd" and ENV{PATH} lines which means no more
        taint problems.

    Bug fixes
        Fixed "dofw" format to return the day of the current week as
        documented instead of next week. Dennis Ingram

        Fixed a bug where dates in years 1900, 1800, etc. (but not 2000 or
        other 400th years) were off by one day in DayOfWeek. Noble Thomas

        Fixed a bug in ParseRecur (2-digit years not treated correctly).
        Brian Rectanus

    Time zone fixes
        Added time zones. Nelson Ferreira, David Harper

    Documentation fixes
        Fixed some typos. Thanks to Alex Kapranoff

        Typo fixed. Jim Hranicky

VERSION 5.37 (2000-02-14)
    Bug fixes
        Set ENV{PATH} to help with taint checking. Joe Lipson

        Fixed a serious bug where HH:24:00 was broken due to support from
        24:00:00. Scott Egashira

    Time zone fixes
        Fixed the sign on the military time zones. John Scott

VERSION 5.36 (2000-01-21)
    New features
        Added support for 24:00:00 to ParseDate. William H Asquith

    Bug fixes
        Fixed a bug in ParseRecur. Lewis Tsao

        Fixed a bug is UnixDate (%l format). Jon Hedley

        Fixed a bug in Date_GetNext/Prev. Christoph Haas

        Fixed a bug in Date_IsHoliday. Report and patch by Rolf Beutner

        Fixed a bug in UnixDate. Patch by Kurtis D. Rader

        Rewrote IsInt routine based on discussion with Sean Hunter
        (approximately 30% faster on a SPARC).

    Time zone fixes
        Added time zone. Paul Arzul

    Documentation fixes
        Fixed a documentation problem with Date_ConvTZ. Diab Jerius

VERSION 5.35 (1999-07-06)
    (!) Deprecated Date_DaysSince999
        In fixing support for the years 0001-0999, I rewrote
        Date_DaysSince999 to be Date_DaysSince1BC. The Date_DaysSince999
        function will be removed.

    (*) (!) Added PathSep variable
        In order to better support Win32 platforms, I added the PathSep
        config variable. This will allow the use of paths such as "c:\date"
        on Win32 platforms. Old config files on Win32 platforms (which were
        not working correctly in many cases) may not work if they contain
        path information to the personal config file.

    (*) Recurrences now support flags
        Flags for modifying recurrence dates are now supported.

    (*) Improved holiday support considerably
        Added support for recurrences and one-year-only holidays (the latter
        requested first by Vishal Bhatia.

    (*) Date_Init improved
        Date_Init can now return a list of config variables if called in
        array context. Based on a suggestion by Matt Tuttle.

    New features
        Modified Date_GetPrev/Date_GetNext to take $curr=2.

        Now parses the Apache log file format "dd/mmm/yyyy:hh:mm:ss (time
        zone)". Mark Ferguson

        Added OS/2 support. Michael B. Babakov

        Added Date_IsHoliday routine. Joe Pepin

        Added recurrence support for Easter (first suggested by Abigail).

    Bug fixes
        Made "epoch" not case sensitive and fixed a bug where it would fail
        in some languages. Caught because of Iosif's thorough Romanian test
        file.

        Fixed a problem where "in 5 days/weeks/months" sometimes wouldn't
        get correctly parsed in other languages. Caught because of Iosif's
        thorough Romanian test file.

        Fixed a weakness in ParseDateDelta brought out by the Romanian delta
        test file.

        Fixed a bug causing warnings in the beta version of perl. Patch by
        Paul Johnson.

        Fixed support for years 0000-0999. Requested by Chris Vaughan

        Several recurrence bug fixes.

        Put all the my'ed global variables in a couple hashes to clean up
        the namespace and to make a few future enhancements easier to do.

        Fixed a bug where business weeks weren't being used correctly. Qian
        Miao

        Fixed a serious typo in the DaysSince1BC routine. Qian Miao

        Fixed Veteran's day, added Good Friday (off by default). Peter Chen

        Cleaned up holiday variables and re-did holiday routines.

    Time zone fixes
        Added time zones. Oded Cohen

    Language fixes
        Added Romanian support (including 2 test files). Iosif Fettich

        Corrected Swedish translations. Danne Solli

        Some fixes to German translations. Peter Ehrenberg

        Added Italian. Nicola Pedrozzi

    Test fixes
        Added recurrence test suite

    Documentation fixes
        Several documentation updates.

        New recurrence documentation.

VERSION 5.34 (1999-04-13)
    (!) (*) All [Date::Manip] variables are no longer accessible
        Previously, [Date::Manip] variables were declared using a full package
        name. Now, they are declared with the my() function. This means that
        internal variables are no longer accessible outside of the module.
        Based on suggestion by Tom Christiansen

    (!) Week interpretation in business mode deltas
        A business mode delta containing a week value used to be treated as
        7 days. A much more likely interpretation of a week is Monday to
        Monday, regardless of holidays, so this is now the behavior.

    (!) %z UnixDate format
        The %z UnixDate format used to return the time zone abbreviation. It
        now returns it as a GMT offset (i.e. -0500). %Z still returns the
        time zone abbreviation. Suggested by Tuc.

    (!) Formats "22nd Sunday" returns the intuitive value
        The date "22nd Sunday" used to return the Sunday of the 22nd week of
        the year (which could be the 21st, 22nd, or 23rd Sunday of the year
        depending on how weeks were defined). Now, it returns the 22nd
        Sunday of the year regardless.

    (!) Separator in DD/YYmmm and mmmDD/YY formats no longer optional
        Previously, the date "Dec1065" would return Dec 10, 1965. After
        adding the YYYYmmm and mmmYYYY formats, this was no longer possible.
        The separator between DD and YY is no longer optional, so

           Dec1065     returns December 1, 1065
           Dec10/65    returns December 10, 1965

    (*) Date_Cmp added
        In one of the next versions of [Date::Manip], the internal format of
        the date will change to include time zone information. All date
        comparisons should be made using Date_Cmp (which currently does
        nothing more than call the Perl "cmp" command, but which will
        important when comparing dates that include the time zone).

        Added now in response to a question by Al Sorrell (I should have
        added it earlier).

    New features
        Added exact business mode. Ian Duplisse

        Added "mmmYYYY" and "YYYYmmm" formats. As a result, "DDYYmmm" and
        "mmmDDYY" formats changed to "DD/YYmmm" and "mmmDD/YY" as described
        above. David Twomey

    Bug fixes
        Fixed a bug where a date passed in as an array wasn't getting the
        date removed from the array. Rick Wise

        Added tests for MPE/iX OS. John Testa

        Fixed a bug where WorkDayBeg=8:00 went into an infinite loop. Mark
        Martinec

        Changed a business week to be the same as an exact week. Abigail

        Fixed a bug where "Sunday week 0" didn't work (only affected week 0)
        Gerald Rinske

        Minor bug (my variable declared twice). Paul J. Schinder

        Fixed a bug where "epoch SECONDS" was getting parsed wrong (for
        SECONDS which could be interpreted as an ISO-8601 date). N. Thomas

        Fixed a problem where init files were not being read. Mike Reetz

    Time zone fixes
        At the request of the UN, I added the SAT time zone. :-) Howard
        Hendler

        Fixed a bug where time zones were converted multiple times if ConvTZ
        was set and DateCalc called. Steven Hartland

    Language fixes
        Added Portuguese. Rui Pedro da Silva Leite Pereira

    Documentation fixes
        A number of typos fixed. Ron Pero

VERSION 5.33 (1998-08-20)
    Bug fixes
        Fixed a bug where "1 month ago" was no longer working (and added it
        to the test cases). This broke when I fixed the "-1second" bug in
        the previous version. A result of this is that a number of "deltas"
        can be parsed as dates (i.e. &ParseDate("1 hour 20 minutes ago") is
        equivalent to &DateCalc("now","1 hour 20 minutes ago")). Only text
        deltas can be used in this way (i.e. &ParseDate("-0:0:0:0:1:20:0")
        will not work).

    Language fixes
        Added Spanish support. Bautista Jasso Javier

VERSION 5.32 (1998-08-17)
    (!) Date_Init arguments
        The old style Date_Init arguments that were deprecated in version
        5.07 have been removed.

    (!) (*) DateManip.cnf change
        Changed .DateManip.cnf to Manip.cnf (to get rid of problems on OS's
        that insist on 8.3 filenames) for all non-Unix platforms (Windows,
        VMS, Mac). For all Unix platforms, it's still .DateManip.cnf . It
        will only look in the user's home directory on VMS and Unix.

    New features
        Added "in N days" and "N days ago" formats. Tony Bowden.

        Added cYYYY format to YYtoYYYY variable. Mark Rejhon.

        Added 2 days/weeks/months later in both ParseDate and ParseDelta
        (for Dutch support). Abigail.

        Added "Y:M:0*-DOM:0:0:0" to ParseRecur. Jeff Yoak.

    Bug fixes
        Fixed a bug where the deltas could be off by up to a couple minutes
        in some rare cases. Herman Horsten.

        Fixed an "uninitialized symbol" warning. Mark D. Anderson.

        Fixed a bug where holidays weren't erased. Jonathan Wright.

        Applied a bug fix from Joe Chapman where the %W/%U UnixDate formats
        were frequently wrong.

        Several minor fixes and improvements. Abigail.

        Added some VMS support. Charles Lane.

        Fixed a bug which caused a test to fail on some systems. Charles
        Lane.

        Fixed a bug where "-1second" was treated as a date rather than a
        delta in DateCalc. Kenneth Ingham

        Added a bit to the Makefile.PL (as it was distributed in the Win32
        Perl Resource Kit). Murray Nesbitt

    Time zone fixes
        Allowed time zones of the format STD-#DST-#. Peter Gordon.

        Added time zone support for "+0500 (EST)". Tom Christiansen.

        Restricted time zones parsing to 0000-2359 instead of 0000-9999.
        Frank Cusack

        Added time zones. W. Phillip Moore, Michael Smith, Samuli Karkkainen

    Language fixes
        Added Polish support. Ian Wojtowicz.

        Added Dutch support. Abigail.

        Added A.M. and P.M. parsing (not just AM and PM). William W. Arnold.

        Fixed a German initialization problem. Thomas Horster-Moller and
        Christian Reithmaier

    Documentation fixes
        Documentation fix. Peter Gordon.

        Minor documentation changes. Yamamoto Hiroshi.

        Added info about the RCS problem. Supplied by Kipp E. Howard.

VERSION 5.31 (1998-04-08)
    New features
        Added "epoch SECS" format to ParseDateString. Thanks to: Joshua M.
        Burgin.

        Added a patch by Blair Zajac to make Date_NthDayOfYear work with
        decimal days.

    Bug fixes
        Fixed a bug in ParseDateDelta (seems to appear only in 5.005
        pre-releases). Found by Larry W. Virden.

        Missed one form in ParseDate. Noted by Tuc.

        Fixed a bug where "15:00:00" couldn't be parsed. Michael Pizolato.

        Split Manip.pm. New files are HISTORY, TODO, Manip.pod.

        Fixed a bug in ParseDateDelta. Antonio Rosella.

        Removed the only occurrence of $& (which may speed some things up).
        Fix by Ken Williams. First suggested by Abigail.

        Fixed an overflow bug in doing date calculations with 2 dates more
        than 70 years apart. Fix by Vishal Bhatia.

        Fixed a bug where "5:00pm" wasn't always parsed correctly. Thanks to
        Jim Trocki.

        Fixed a bug in UnixDate (it wouldn't return the correct string for a
        format who's last character was '0') noted by Ramin V.

    Time zone fixes
        Relaxed some restrictions on time zones so ISO-8601 dates can use
        non-ISO-8601 time zones. Noted by John Chambers.

        Fixed a bug in converting time zones with a minutes field (+1030).
        Found by Paul O.

    Language fixes
        Some fixes to the French translations by Emmanuel Bataille.

        Added German support. Thanks to Andreas C. Poszvek.

    Documentation fixes
        Minor documentation fixes. Will Linden.

        Fixed a documentation problem with Date_GetPrev. It was still 0-6
        instead of 1-7. Thanks to Robert Klep.

VERSION 5.30 (1998-01-21)
    (!) (*) Delta format changed
        A week field has been added to the internal format of the delta. It
        now reads "Y:M:W:D:H:MN:S" instead of "Y:M:D:H:MN:S".

    (*) Now handles recurring events
        Added ParseRecur. First suggested by Chris Jackson.

    New features
        All routines can now take either a 2- or 4-digit year.

        Added Delta_Format. First suggested by Alan Burlison.

        Added Date_SetDateField. Thanks to Martin Thurn.

    Bug fixes
        Made the $err argument to DateCalc optional.

        Changed the name of several of the library routines (not the
        callable ones) to standardize naming.

VERSION 5.21 (1998-01-15)
    (!) Long running processes may give incorrect time zone
        A process that runs during a time zone change (Daylight Saving Time
        specifically) may report the wrong time zone. See the UpdateCurrTZ
        variable for more information.

    (!) UnixDate "%J", "%W", and "%U" formats fixed
        The %J, %W, and %U will no longer report a week 0 or a week 53 if it
        should really be week 1 of the following year. They now report the
        correct week number according to ISO 8601.

    New features
        Added YYtoYYYY variable. Suggested by Michel van der List.

        Added the UpdateCurrTZ variable to increase speed at the cost of
        being wrong on the time zone.

        Added British date formats. Thanks to Piran Montford. Monday week
        today week as well as some US formats in 2 months next month

        Time can now be written 5pm. Piran Montford.

        Added the TomorrowFirst variable and Date_NearestWorkDay function.

        Added UnixDate formats %G and %L to correctly handle the year.
        Thanks to Samuli Karkkainen.

        Added ForceDate variable. Based on a suggestion by Christian
        Campbell.

    Bug fixes
        Now passes Taint checks. Thanks to Mike Fuhr, Ron E. Nelson, and
        Jason L Tibbitts III.

        Put everything in a "use integer" pragma.

        Added a missing space in the %g UnixDate format. Thanks to Mike
        Booth.

        Removed all mandatory call to Date_Init (only called when current
        time is required). Significantly faster.

        Fixed a bug in Date_ConvTZ. Thanks to Patrick K Malone.

        Fixed a bug in Date_IsWorkDay.

    Time zone fixes
        Fixed some Australian time zones. Kim Davies.

    Language fixes
        Cleaned up multi-lingual initialization and added the IntCharSet
        variable.

        Improved French translations. Thanks to Emmanuel Bataille.

        Added "Sept" as a recognized abbreviation. Thanks to Martin Thurn.

        Typo in the French initialization. Thanks to Michel Minsoul.

    Test fixes
        Fixed the tests to not fail in 1998.

    Documentation fixes
        Documented how to get around Micro$oft problem. Based on a mail by
        Patrick Stepp.

VERSION 5.20 (1997-10-12)
    (*) ISO 8601 support
        ISO 8601 dates are now parsed. This resulted in several other
        changes specified below.

    (!) (*) ParseDate formats removed
        As a result of ISO 8601 support, some formats which previously
        worked may no longer be parsed since they conflict with an ISO 8601
        format. These include MM-DD-YY (conflicts with YY-MM-DD) and YYMMDD
        (conflicts with YYYYMM). MM/DD/YY still works, so the first form can
        be kept easily by changing "-" to "/". YYMMDD can be changed to
        YY-MM-DD before being parsed. Whenever parsing dates using dashes as
        separators, they will be treated as ISO 8601 dates. You can get
        around this by converting all dashes to slashes.

    (!) (*) Week day numbering
        The day numbering was changed from 0-6 (Sun-Sat) to 1-7 (Mon-Sun) to
        be ISO 8601 compatible. Weeks start on Monday (though this can be
        overridden using the FirstDay config variable) and the 1st week of
        the year contains Jan 4 (though it can be forced to contain Jan 1
        with the Jan1Week1 config variable).

    New features
        Several new parsing formats added, including: "Friday" suggested by
        Rob Perelman "12th" suggested by Rob Perelman "last day of MONTH"
        suggested by Chadd Westhoff

        Added ParseDateString for speed (and simplicity for modifying
        ParseDate)

        Added %J and %K formats to UnixDate.

        Added Date_DaysInMonth.

    Bug fixes
        Reorganized ParseDate more efficiently.

        Fixed some incorrect uses of $in instead of $future in ParseDate.
        Thanks to Erik Corry.

        Added some speedups (more to come).

    Test fixes
        Cleaned up testing mechanism a bit and added tests for ISO 8601
        formats.

VERSION 5.11 (1997-08-07)
    Version 5.11 was never released to CPAN.

    Bug fixes
        Added one more check for NT perl. Thanks to Rodney Haywood.

        Added some comments to help me keep my personal libraries up-to-date
        with respect to [Date::Manip] and vice-versa.

        Fixed a bug which showed up in French dates (though it could happen
        in other languages as well). Thanks to Georges Martin.

        Fixed a bug in DateCalc. Thanks to Thomas Winzig.

        Removed the "eval" statement from CheckFilePath which causes a suid
        c wrapper program to die when it calls a [Date::Manip] script. Thanks
        to Hank Hughes.

        Fixed a bug in business mode calculations. Thanks to Sterling
        Swartwout.

        Fixed a bug in which "1997023100:00:00" was accepted as valid.
        Thanks to Doug Emerald.

        Fixed a bug in which ConvTZ was not used correctly in ParseDate.
        Re-did portions of Date_ConvTZ. Thanks to Vivek Khera.

        Fixed a bug in business mode calculations. Thanks to Ian Duplisse.

        Added $^X check for Win95 perl. Thanks to Walter Soldierer.

        Missed one call to NormalizeDelta so the output was wrong. Thanks to
        Brad A. Buikema.

    Time zone fixes
        Added time zones. Paul Gillingwater, Rosella Antonio, Kang Taewook

VERSION 5.10 (1997-03-19)
    Bug fixes
        Cleaned up In, At, and On regexps.

        Added 2 checks for MSWin32 (date command and getpw* didn't work).
        Thanks to Alan Humphrey.

        Fixed two bugs in the DateCalc routines. Pointed out by Kevin Baker.

        Added a check for Windows_95. Thanks to Charlie W.

        Cleaned up checks for MacOS and Microsoft OS's. Hopefully I'm
        catching everything. Thanks to Charlie Wu for one more check.

        Fixed a typo which broke Time%Date (Date=dd%mmm%yy) format. Thanks
        to Timothy Kimball.

    Time zone fixes
        Fixed some problems with how "US/Eastern" type time zones were used.
        Thanks to Marvin Solomon.

    Test fixes
        Tests will now run regardless of the time zone you are in.

        Test will always read the DateManip.cnf file in t/ now.

        A failed test will now give slightly more information.

        DateManip.cnf file in t/ now sets ALL options to override any
        changes made in the Manip.pm file.

    Documentation fixes
        Added documentation for backwards incompatibilities to POD.

        Fixed some problems in POD documentation. Thanks to Marvin Solomon.

        Fixed minor POD error pointed out by John Perkins.

        Changed documentation for Date_IsWorkDay (it was quite confusing
        using a variable named $time). Thanks to Erik M. Schwartz.

        Fixed typo in documentation (midnight misspelled). Thanks to Timothy
        Kimball.

VERSION 5.09 (1997-01-28)
    Bug fixes
        Upgraded to 5.003_23 and fixed one problem associated with it.

        Used carp and changed all die's to confess.

        Replaced some UNIX commands with perl equivalents (date with
        localtime in the tests, pwd with cwd in the path routines).

        Cleaned up all routines working with the path.

    Test fixes
        Tests work again (broke in 5.08). Thanks to Alex Lewin and Michael
        Fuhr for running debugging tests.

VERSION 5.08 (1997-01-24)
    Bug fixes
        (*) Fixed serious bug in ConvTZ pointed out by David Hall.

        (*) Modified Date_ConvTZ (and documented it).

VERSION 5.07p2  1997-01-03
    Released two patches for 5.07.

    Bug fixes
        Fixed a bug where a delta component of "-0" would mess things up.
        Reported by Nigel Chapman.

    Time zone fixes
        (*) Can now understand PST8PDT type zones (but only in
        Date_TimeZone).

        Added lots of time zone abbreviations.

    Test fixes
        Fixed some tests (good for another year).

VERSION 5.07 (1996-12-10)
    (!) UnixDate "%s" format
        Used to return the number of seconds since 1/1/1970 in the current
        time zone. It now returns the number of seconds since 1/1/1970 GMT.
        The "%o" format was added which returns what "%s" previously did.

    (!) (*) Internal format of delta
        The format for the deltas returned by ParseDateDelta changed.
        Previously, each element of a delta had a sign attached to it
        (+1:+2:+3:+4:+5:+6). The new format removes all unnecessary signs by
        default (+1:2:3:4:5:6). Also, because of the way deltas are
        normalized (see documentation on ParseDateDelta), at most two signs
        are included. For backwards compatibility, the config variable
        DeltaSigns was added. If set to 1, all deltas include all 6 signs.

    (!) (*) Date_Init arguments
        The format of the Date_Init calling arguments changed. The old
        method

           Date_Init($language,$format,$tz,$convtz);

        is still supported , but this support will likely disappear in the
        future. Use the new calling format instead:

           Date_Init("var=val","var=val",...);

        NOTE: The old format is no longer supported as of version 5.32 .

    (*) Added weeks to ParseDateDelta.
        Suggested by Mike Bassman. Note that since this is a late addition,
        I did not change the internal format of a delta. Instead, it is
        added to the days field.

    (*) Now reads a config file.
        Refer to the Date_Init documentation for details.

    (*) Added business mode.
        See documentation. Suggested by Mike Bassman.

    New features
        (*) Modified how deltas are normalized and added the DeltaSigns
        config variable.

        Added %q format "YYYYMMDDHHMMSS" to UnixDate. Requested by Rob
        Perelman. Also added %P format "YYYYMMDDHH:MM:SS".

        Added a new config variable to allow you to work with multiple
        internal formats (with and without colons). Requested by Rob
        Perelman. See Date_Init documentation.

        Added the following formats suggested by Andreas Johansson: Sunday
        week 22 [in 1996] [at 12:00] 22nd Sunday [in 1996] [at 12:00] Sunday
        22nd week [in 1996] [at 12:00]

        Added a new config variable to allow you to define the first day of
        the week. See Date_Init documentation.

        Added the following formats to ParseDate for convenience (some were
        suggested by Mike Bassman): next/last Friday [at time] next/last
        week [at time] in 2 weeks [at time] 2 weeks ago [at time] Friday in
        2 weeks in 2 weeks on Friday Friday 2 weeks ago 2 weeks ago Friday

        Added Date_SecsSince1970GMT, moved the %s format to %o (secs since
        1/1/70) and added %s format (secs since 1/1/70 GMT). Based on
        suggestions by Mark Osbourne. Note this introduces a minor backward
        incompatibility described above.

        Date_SetTime now works with international time separators.

        Added the %g format (%a, %d %b %Y %H:%M:%S %z) for an RFC 1123 date.
        Suggested by Are Bryne.

        Added options to delete existing holidays and ignore global config
        file.

        Date_GetNext and Date_GetPrev now return the next/prev occurrence of
        a time as well as a day. Suggested by Are Bryne.

        In approximate mode, deltas now come out completely normalized (only
        1 sign). Suggested by Rob Perelman.

        Added [Date::Manip::InitDone] so initialization isn't duplicated.

        Added a 3rd internal format to store YYYY-MM-DD HH:MN:SS (iso 8601).

        Added a config variable to allow you to work with 24 hour business
        days. Suggested by Mike Bassman.

        ParseDateDelta now returns "" rather than "+0:0:0:0:0:0" when there
        is an error.

    Bug fixes
        (*) The d:h:mn:s of ALL deltas are normalized.

        Huge number of code changes to clean things up.

        Subroutines now check to see if 4 digit years are entered. Suggested
        by Are Bryne.

        Added local($_) to all routines which use $_. Suggested by Rob
        Perelman.

        Complete rewrite of DateCalc.

        Fixed a bug where UnixDate %E format didn't work with single digit
        dates. Patch supplied by Jyrgen Nyrgaard.

        Fixed a bug where "today" was not converted to the correct time
        zone.

    Time zone fixes
        Fixed bug in Date_TimeZone where it didn't recognize +HHMN type time
        zones. Thanks to Are Bryne.

        Added WindowsNT check to Date_TimeZone to get around NT's weird date
        command. Thanks to Are Bryne.

        Fixed typo (CSD instead of CST).

        Fixed sign in military time zones making [Date::Manip] RFC 1123
        compliant (except that time zone information is not stored in any
        format)

    Test fixes
        (*) Added test suite!

VERSION 5.06 (1996-10-25)
    New features
        Added "today at time" formats.

        ParseDateDelta now normalizes the delta as well as DateCalc.

        Added %Q format "YYYYMMDD" to UnixDate. Requested by Rob Perelman.

    Bug fixes
        Fixed another two places where a variable was declared twice using
        my (thanks to Ric Steinberger).

        Fixed a bug where fractional seconds weren't parsed correctly.

        Fixed a bug where "noon" and other special times were not parsed in
        the "which day of month" formats.

        Fixed a minor bug where a few matches were case sensitive.

        The command "date +%Z" doesn't work on SunOS machines (and perhaps
        others) so 5.05 is effectively broken. 5.06 released to fix this.
        Reported by Rob Perelman.

VERSION 5.05 (1996-10-11)
    New features
        Changed deltas to be all positive or all negative when produced by
        DateCalc. Suggested by Steve Braun

        Added DateManipVersion routine.

        (*) Parses RFC 822 dates (thanks to J.B. Nicholson-Owens for
        suggestion).

        Parses ctime() date formats (suggested by Matthew R. Sheahan).

        Now supports times like "noon" and "midnight".

    Bug fixes
        Fixed bug introduced in 5.04 when default day set to 1. When no date
        given, have day default to today rather than 1. It only defaults to
        one if a partial date is given.

        Fixed bug where Date_DaysSince999 returned the wrong value (the
        error did not affect any other functions in [Date::Manip] due to the
        way it was called and the nature of the error). Pointed out by Jason
        Baker

        Dates with commas in them are now read properly.

        Fixed two places where a variable was declared twice using my
        (thanks to Ric Steinberger).

        Hopefully fixed installation problems.

        Got rid of the last (I think) couple of US specific strings.

        Fixed bug in Date_SetTime (didn't work with $hr,$min,$sec < 10).

        Added ModuloAddition routine and simplified DateCalc.

    Time zone fixes
        (*) Now supports time zones.

        (*) Added Date_ConvTZ routine for time zone support.

        Date_TimeZone will now also check `date '+%Z'` suggested by Aharon
        Schkolnik.

    Language fixes
        Added Swedish translation (thanks to Andreas Johansson

        The time separators are now language specific so the French can
        write "10h30" and the Swedes can write "10.30". Suggested by Andreas
        Johansson.

    Documentation fixes
        Fixed bad mistake in documentation (use [Date::Manip] instead of use
        DateManip) pointed out by <tuc@valhalla.stormking.com>

        Minor improvements to documentation.

        Documented the 'sort within a sort' bug.

        Fixed type in documentation/README pointed out by James K. Bence.

VERSION 5.04 (1996-08-01)
    New features
        Added support for fractional seconds (as generated by Sybase). They
        are parsed and ignored. Added by Kurt Stephens

    Bug fixes
        Fixed bugs reported by J.B. Nicholson-Owens "Tue Jun 25 1996" wasn't
        parsed correctly (regexp was case sensitive) full day names not
        parsed correctly the default day in ErrorCheck should be 1, NOT
        currd since when currd>28, it may not be a valid date for the month

VERSION 5.03 (1996-07-17)
    Bug fixes
        Fixed a couple of bugs in UnixDate.

        Declared package variables to avoid warning "Identifier XXX used
        only once". Thanks to Peter Bray for the suggestion.

VERSION 5.02 (1996-07-15)
    New features
        (*) Added some internationalization (most of the routines had to be
        modified at least slightly)

    Bug fixes
        Fixed a bug where repeated calls to ParseDate("today") was not reset

        Replaced the %[Date::Manip::Date] variable with a large number of
        other, more flexible variables

        Rewrote the Init routine

VERSION 5.01 (1996-06-24)
    New features
        Added %F format to UnixDate. Rob Perelman

        Added "Date at Time" types

        Weekdays can be entered and checked

        Two digit years fall in the range CurrYear-89 to CurrYear+10

    Bug fixes
        Reworked a number of the ParseDate regular expressions to make them
        more flexible

    Documentation fixes
        Fixed a typo (Friday misspelled Fridat). Rob Perelman

        Documentation problem for \$err in DateCalc. Rob Perelman

VERSION 5.00 (1996-06-21)
    (*) Switched to a package.
        Patch supplied by Peter Bray: renamed to [Date::Manip] changed version
        number to 2 decimal places added POD documentation

        Thanks to Peter Bray, Randal Schwartz, Andreas Koenig for
        suggestions

    Bug fixes
        Fixed a bug pointed out by Peter Bray where it was complaining of an
        uninitialized variable.

VERSION 4.3 (1995-10-26)
    New features
        Added "which dofw in mmm" formats to ParseDate. Mark Dedlow

    Bug fixes
        Added a bugfix of Adam Nevins where "12:xx pm" used to be parsed
        "24:xx:00".

VERSION 4.2 (1995-10-23)
    New features
        UnixDate will now return a scalar or list depending on context

        ParseDate/ParseDateDelta will now take a scalar, a reference to a
        scalar, or a reference to an array

        (*) Simple time zone handling

        (*) Added Date_SetTime, Date_GetPrev, Date_GetNext

    Bug fixes
        Added copyright notice (requested by Tim Bunce)

VERSION 4.1 (1995-10-18)
    New features
        (*) Added DateCalc

    Bug fixes
        Changed %DATE_ to %[DateManip::Date]

        (*) Rewrote ParseDateDelta

VERSION 4.0 (1995-08-13)
    (*) First public release

    New features
        Added time first formats to ParseDate

    Bug fixes
        (*) Switched to perl 5

        Cleaned up ParseDate, ParseDateDelta

VERSION 3.0 (1995-05-03)
    New features
        Added today/tomorrows/etc. formats

        (*) Added UnixDate

        (*) Added ParseDateDelta

    Bug fixes
        Added %DATE_ global variable to clean some stuff up

        Simplified several routines

VERSION 2.0 (1995-04-17)
    New features
        Included ideas from [Time::ParseDate] (David Muir Sharnoff)

        Included ideas from date.pl 3.2 (Terry McGonigal)

        (*) Added seconds to ParseDate

    Bug fixes
        Made error checking much nicer

VERSION 1.2 (1995-03-31)
    New features
        Added a few date formats

    Bug fixes
        Made months case insensitive

VERSION 1.1 (1995-02-08)
    New features
        Added leap year checking

        Both "Feb" and "February" formats available

VERSION 1.0 (1995-01-20)
    (*) Initial release
        Though not released to the public, the initial released combined
        routines from several scripts into one library.

## BUGS AND QUESTIONS
    Please refer to the [Date::Manip::Problems] documentation for information
    on submitting bug reports or questions to the author.

## SEE ALSO
    [Date::Manip] - main module documentation

## LICENSE
    This script is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.

## AUTHOR
    Sullivan Beck (<sbeck@cpan.org>)

