Date::Manip::Changes5 - changes in Date::Manip 5.xx |
Date::Manip::Changes5 - changes in Date::Manip 5.xx
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 (!).
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.
No changes
No changes
Explicitly set TZ in all tests to avoid some failures (it got left out of a few when it was bundled with 6.10).
This will allow all of the automatic module tools to work correctly.
I accidentally included a require 5.10 which made Date::Manip not work with earlier versions of perl. Nicholas Riley
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''.
Added time zone. Kimmo R. M. Hovi
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
New time zones. Robin Norwood
Fixed Russian time zones. Yuri Kovalenko
Language fix for German. Andreas Dembach
Lots of spelling fixes. Asaf Bartov
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.
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
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
Small correction to Brazil time zones. John McDonald
Added time zones. Michael Wood-Vasey, Don Robertson, Michael D. Setzer II, Andres Tarallo
Minor corrections to Italian. Nicola Pedrozzi
Added the language Catalan. Xavi Drudis
Clarified documentation on %W/%G/%U/%L formats. Joel Savignon
As of 5.41, odd numbered releases are development (and appear only on my page). Even number releases are official releases submitted to CPAN.
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
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
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.
Fixed spelling of Veteran's day. Dirk Eddelbuettel
Documentation improvements. James Olsen
Added NWD/PWD/DWD flags to ParseRecur. Peter Wyngaard
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
Fixed a warning if the time zone is supplied as a +HHMM format. Viola Mauro
Fixed South African time zone. David Sieborger
@::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
Added time zones. Dirk Eddelbuettel, Eli Selinger
Got rid of the ``use Cwd'' and ENV{PATH} lines which means no more taint problems.
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
Typo fixed. Jim Hranicky
Fixed a serious bug where HH:24:00 was broken due to support from 24:00:00. Scott Egashira
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).
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).
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.
Corrected Swedish translations. Danne Solli
Some fixes to German translations. Peter Ehrenberg
Added Italian. Nicola Pedrozzi
New recurrence documentation.
my()
function. This means that
internal variables are no longer accessible outside of the module.
Based on suggestion by Tom Christiansen
Dec1065 returns December 1, 1065 Dec10/65 returns December 10, 1965
Added now in response to a question by Al Sorrell (I should have added it earlier).
Added ``mmmYYYY'' and ``YYYYmmm'' formats. As a result, ``DDYYmmm'' and ``mmmDDYY'' formats changed to ``DD/YYmmm'' and ``mmmDD/YY'' as described above. David Twomey
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
Fixed a bug where time zones were converted multiple times if ConvTZ was set and DateCalc called. Steven Hartland
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.
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
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
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
Minor documentation changes. Yamamoto Hiroshi.
Added info about the RCS problem. Supplied by Kipp E. Howard.
Added a patch by Blair Zajac to make Date_NthDayOfYear work with decimal days.
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.
Fixed a bug in converting time zones with a minutes field (+1030). Found by Paul O.
Added German support. Thanks to Andreas C. Poszvek.
Fixed a documentation problem with Date_GetPrev. It was still 0-6 instead of 1-7. Thanks to Robert Klep.
Added Delta_Format. First suggested by Alan Burlison.
Added Date_SetDateField. Thanks to Martin Thurn.
Changed the name of several of the library routines (not the callable ones) to standardize naming.
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.
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.
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.
Added ParseDateString for speed (and simplicity for modifying ParseDate)
Added %J and %K formats to UnixDate.
Added Date_DaysInMonth.
Fixed some incorrect uses of $in instead of $future in ParseDate. Thanks to Erik Corry.
Added some speedups (more to come).
Version 5.11 was never released to CPAN.
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.
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.
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.
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.
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.
(*) Modified Date_ConvTZ (and documented it).
Released two patches for 5.07.
Added lots of time zone abbreviations.
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 %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.
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.
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)
ParseDateDelta now normalizes the delta as well as DateCalc.
Added %Q format ``YYYYMMDD'' to UnixDate. Requested by Rob Perelman.
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.
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''.
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.
(*) Added Date_ConvTZ routine for time zone support.
Date_TimeZone will now also check `date '+%Z'` suggested by Aharon Schkolnik.
The time separators are now language specific so the French can write ``10h30'' and the Swedes can write ``10.30''. Suggested by Andreas Johansson.
Minor improvements to documentation.
Documented the 'sort within a sort' bug.
Fixed type in documentation/README pointed out by James K. Bence.
Declared package variables to avoid warning ``Identifier XXX used only once''. Thanks to Peter Bray for the suggestion.
ParseDate(``today'')
was not reset
Replaced the %Date::Manip::Date variable with a large number of other, more flexible variables
Rewrote the Init routine
Added ``Date at Time'' types
Weekdays can be entered and checked
Two digit years fall in the range CurrYear-89 to CurrYear+10
Documentation problem for \$err in DateCalc. Rob Perelman
Thanks to Peter Bray, Randal Schwartz, Andreas Koenig for suggestions
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
(*) Rewrote ParseDateDelta
(*) First public release
Cleaned up ParseDate, ParseDateDelta
(*) Added UnixDate
(*) Added ParseDateDelta
Simplified several routines
Included ideas from date.pl 3.2 (Terry McGonigal)
(*) Added seconds to ParseDate
Both ``Feb'' and ``February'' formats available
Please refer to the the Date::Manip::Problems manpage documentation for information on submitting bug reports or questions to the author.
the Date::Manip manpage - main module documentation
This script is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Sullivan Beck (sbeck@cpan.org)
Date::Manip::Changes5 - changes in Date::Manip 5.xx |