1Date::Manip::Changes5(3U)ser Contributed Perl DocumentatiDoante::Manip::Changes5(3)
2
3
4
6 Date::Manip::Changes5 - changes in Date::Manip 5.xx
7
9 This describes the changes made to the Date::Manip module up to the
10 time that 6.00 was released. Because 6.00 required a newer version of
11 perl (5.10 or higher), the old version was maintained.
12
13 When Date::Manip 6.10 was released, both versions were bundled together
14 (though how it was bundled changed when 6.14 was released).
15
16 This document describes all changes made to the old version of
17 Date::Manip.
18
19 For the most part, Date::Manip has remained backward compatible at
20 every release, but occasionally, a change is made which is backward
21 incompatible. These are marked with an exclamation mark (!).
22
24 Fixed a bug in Date_ConvTZ
25 Applied a patch supplied by Zhenyi Zhou which fixes a bug in
26 Date_ConvTZ where passing in an empty string did not work.
27
29 As of December 2012, Version 5 of Date::Manip will no longer be
30 modified. The 5.xx version was updated to 5.65 (but no changes were
31 made), and this version is expected to be the final release in the 5.xx
32 series.
33
34 The one exception is that if someone submits a patch that applies
35 cleanly and causes zero failures in the test suite, I will consider
36 adding it on a case-by-cast bases.
37
38 Please use Date::Manip 6.xx instead.
39
41 Better handling of '0000' timezone
42 Applied a patch supplied by Ed Avis that improves handling of the
43 '0000' timezone..
44
46 Fixed business mode calculation
47 Applied a patch that I received some time ago to fix a business
48 mode calculation. Steve Tempest
49
51 No changes
52
54 No changes
55
57 Fully integrated with 6.xx
58 As of Date::Manip 6.14, the 5.xx release is fully integrated into
59 the distribution. Both will be installed automatically and you can
60 switch between them (if you have a recent version of perl). This
61 simplifies the package management process considerably. The
62 downside is that Date::Manip 6.xx will be installed, even if you do
63 not have a recent version of perl and cannot use it.
64
66 Test fixes
67 Fix tests to work better on windows.
68
70 Test fixes
71 Fixed a bug in some of the tests that were causing two tests to
72 fail. JD
73
74 Explicitly set TZ in all tests to avoid some failures (it got left
75 out of a few when it was bundled with 6.10).
76
78 (*) Combined 5.xx and 6.xx
79 As of 6.10, Date-Manip-6.xx will contain both the Date::Manip 5.xx
80 and 6.xx modules. If perl 5.10 or higher is available, the 6.xx
81 version will be installed. For older versions of perl, the 5.xx
82 version will be installed.
83
84 This will allow all of the automatic module tools to work
85 correctly.
86
87 Bug fixes
88 Fixed a bug where years earlier than 1000 AD failed in
89 calculations. John
90
91 Time zone fixes
92 Improved time zone detection. Stepan Kasal
93
94 Documentation fixes
95 Minor improvements. Josef Kreulich
96
98 Bug fixes
99 Date_PrevWorkDay and documentation fix. RT #17005
100
101 I accidentally included a require 5.10 which made Date::Manip not
102 work with earlier versions of perl. Nicholas Riley
103
105 (*) Added time zone abbreviations
106 Date::Manip 5.xx now includes all of the time zone abbreviations
107 from version 6.xx (i.e. all of the abbreviations from the Olsen
108 database).
109
110 Documentation fixes
111 Typo fix. ddascalescu
112
114 Released
115
117 Bug fixes
118 Fix so it won't fail with "Too early to specify a build action"
119
120 CPANTS changes
121 Final changes to meet requirements on http://cpants.perl.org/
122
124 Released
125
127 Bug fixes
128 Fixed bug where the wrong version was in Build.PL
129
130 CPANTS changes
131 Additional changes to meet requirements on http://cpants.perl.org/
132
134 Released
135
137 New features
138 Added "ereyesterday". Ed Avis
139
140 Time zone fixes
141 Added time zones. Damyan Ivanov, Ernesto Hernandez-Novich, Gregor
142 Herrmann, Nicholas Riley, Enrique Verdes, Alexander Litvinov
143
144 Documentation fixes
145 Corrected typo in %G and %L format descriptions. Troy A. Bollinger
146
147 CPANTS changes
148 Added Build.PL and several other things to meet requirements on
149 http://cpants.perl.org/
150
152 Released
153
155 Bug fixes
156 Fixed the version number. John R. Daily
157
158 Fixed a warning when the date command not present. Daniel Hahler
159
160 Fixed a bug where recurrences of the form 0:1*, 0:0:1*, etc.,
161 incorrectly required a base date. Gerry Lawrence
162
163 Fixed a bug where "substring" was used instead of "substr".
164
165 Time zone fixes
166 Fixed a problem in the WEST time zone. Cristina Nunes
167
168 Added time zone. Kimmo R. M. Hovi
169
170 Documentation fixes
171 Revised some of the documentation about Y2K (given that it's in the
172 past) and the 2007 US daylight saving time rule changes.
173
175 Released
176
178 New features
179 Added "overmorrow". Ed Avis
180
181 Bug fixes
182 Fixed bug in parsing ISO 8601 dates. Paul Schinder
183
184 Fixed a bug in UnixDate for years before 1000 AD. Joaquin Ferrero
185
186 Fixed a bug where "today" wasn't case insensitive. Pedro Rodrigues
187
188 Fixed a bug where business/approximate mode wasn't correctly used
189 in DateCalc. Mark T. Kennedy
190
191 Bug in DateCalc where you couldn't pass undef as the errref. Alex
192 Howansky
193
194 Bug where cygwin wasn't using the date command. Rafael Kitover
195
196 Time zone fixes
197 New time zones. Khairil Yusof, Andy Spiegel, Ernesto Rapetti
198
199 New time zones. Robin Norwood
200
201 Fixed Russian time zones. Yuri Kovalenko
202
203 Language fixes
204 Language fix for Danish. Claus Rasmussen
205
206 Language fix for German. Andreas Dembach
207
208 Documentation fixes
209 Minor documentation improvement. Caminati Carlo
210
211 Lots of spelling fixes. Asaf Bartov
212
214 Released
215
217 (!) (*) Recurrences revisited
218 The behavior of some elements of recurrences changed. These
219 included making the week element (N) refer to the Nth occurrence of
220 a day of the week in the week, month, or year. It is now possible
221 to look at the 3rd Friday of every month for example.
222
223 Y-0-WOY-DOW now refers to the WOY'th occurrence of DOW instead of
224 the ISO 8601 date Y-W(WOY)-DOY. Also, changed Y-0-WOY-0 to refer to
225 the WOY'th occurrence of FirstDay, and got rid of the MW and MD
226 flags. Many other similar changes.
227
228 (!) Changed %x format in UnixDate
229 The %x format used to be equivalent to %D (%m/%d/%y), but it has
230 been modified to use the DateFormat config variable, so it may
231 return %d/%m/%y if a non-US DateFormat is specified.
232
233 New features
234 Added TodayIsMidnight. Reuben Thomas
235
236 Added "approx" mode to Delta_Format and reversed change to default
237 Delta_Format behavior to the one from version 5.40. Based on
238 discussion with Adam Spiers.
239
240 Added %O UnixDate format. Martin Thurn
241
242 Bug fixes
243 Fixed a bug is ParseRecur where values passed in were no overriding
244 old values in the recurrence. Scott Barker (reported to the Debian
245 bugs list).
246
247 Fix for a potential problem in the "0000" time zone. Ed Avis
248
249 Changed taint check to be the one in perlsec(1). Max Kalika
250
251 Minor fix so DateInit("VAR=") will work. Thomas Bohme
252
253 Fixed a bug where business mode was kept operative even after the
254 calculation was over. Emiliano Bruni
255
256 Minor change to run under cygwin. Niel Markwick
257
258 Minor VMS fix. Martin P.J. Zinser
259
260 Small fix to taint checking. David Worenklein
261
262 Fixed a problem where deltas were getting misinterpreted as dates.
263 Harry Zhu
264
265 Fixed a bug in ParseRecur where "last day of every March" couldn't
266 be done. Andras Karacsony
267
268 Fixed a bug in business mode calculations. Tracy L Sanders
269
270 Sorted all events and dates returned by Events_List. This fixes
271 problems with tests on some versions of perl. Tulan
272
273 Modified %x UnixDate format to use DateFormat config variable.
274 Matt Lyons
275
276 Time zone fixes
277 Fixed a problem with single character military time zones (T and W)
278 conflicting with ISO 8601 T and W dates. Hugo Cornelis
279
280 Small correction to Brazil time zones. John McDonald
281
282 Added time zones. Michael Wood-Vasey, Don Robertson, Michael D.
283 Setzer II, Andres Tarallo
284
285 Language fixes
286 Fixed German translations. Oliver Scheit
287
288 Minor corrections to Italian. Nicola Pedrozzi
289
290 Added the language Catalan. Xavi Drudis
291
292 Documentation fixes
293 Minor doc fixes Reuben Thomas, Ed Avis, Thomas Winzig
294
295 Clarified documentation on %W/%G/%U/%L formats. Joel Savignon
296
298 Test fixes
299 A quick fix to replace a faulty test.
300
302 Released
303 Number changed to distinguish between the development release
304 (5.41) and the official release.
305
307 As of 5.41, odd numbered releases are development (and appear only on
308 my page). Even number releases are official releases submitted to CPAN.
309
310 (!) Changed path separator for VMS
311 Since ":" is used in some VMS paths, it should not have been used
312 as the path separator. It has been changed to a newline ("\n")
313 character.
314
315 (!) Delta_Format behavior changed
316 The entire delta is exact if no month component is present
317 (previously, no year or month component could be present). Due to
318 discussion with Tim Turner.
319
320 Bug fixes
321 Small patch for OpenVMS. Martin P.J. Zinser
322
323 Minor enhancement to ParseRecur. Randy Harmon
324
325 Fixed a bug involving business deltas with negative hours. Ludovic
326 Dubost
327
328 Added some support for NetWare. Chris Shields
329
330 Applied some robustness patches. Ed Avis
331
332 Fixed a bug with years <1000. Jonathan Callahan
333
334 Patch to make Manip.pm -Mstrict clean and better VMS support.
335 Peter Prymmer
336
337 Fixed a bug in "1st Saturday of 2005" format. Maurice Aubrey
338
339 Taint check insecure $ENV{PATH} fix. Ed Avis
340
341 Patch to allow deltas of the form "+ -1 day" to work. Ed Avis
342
343 Removed ampersands from function calls in documentation to fit new
344 perl coding standards. Bill Pollock
345
346 Fixed a bug where spaces in a date caused problems in German (due
347 to the number 1st, 2nd, etc. being 1., 2., etc.). Erik Roderwald
348
349 Time zone fixes
350 Minor bug fix where /etc/time zone not correctly read. Jacek
351 Nowacki
352
353 Made the UnixDate %Z format work with numeric time zones. Michael
354 Isard
355
356 Fixed bug where -HH:MM and +HH:MM were not being accepted as valid
357 time zones. Hank Barta
358
359 Fixed a bug where time zones -HH:MM weren't handled in ISO 8601
360 dates. Ed Avis
361
362 Added some help for VMS time zones. Don Slutz
363
364 Added some checking to the time zone determination. Ed Avis
365
366 Added time zones. David Coppit, Daniel Serodio, Fabian Mandelbaum,
367 Raul Dias, Pedro Melo CUNHA, Roman Y Malakhov, David Whiting,
368 Khaled Mostaguir, Jason King
369
370 Language fixes
371 (*) Replaced all non-ASCII characters with hex representations to
372 avoid the malformed UTF-8 character warnings. Ed Avis
373
374 Added Russian translation. Dapi
375
376 Additions to Dutch translation. Willem
377
378 Patch to French support. Patrick Turmel
379
380 Added Tues/Thur abbreviations. Martin Thurn
381
382 Added Turkish. Giray
383
384 Added Danish. Jesper Dalberg
385 A patch for Danish was send by Jorgen Norgaard previously, and
386 I somehow overlooked it. I apologize for that.
387
388 Test fixes
389 Added runtests.bat contributed by Lon Amick
390
391 Documentation fixes
392 Minor doc fix. Jeremy Tietsort
393
394 Fixed spelling of Veteran's day. Dirk Eddelbuettel
395
396 Documentation improvements. James Olsen
397
399 New features
400 Added support for negative values is "epoch SECS" type dates.
401 Larry Warner
402
403 Added NWD/PWD/DWD flags to ParseRecur. Peter Wyngaard
404
405 Bug fixes
406 Fixed a warning. Edward Avis
407
408 Fixed a bug where the date wasn't rolling over when parsing dates
409 containing only times. James L. Gordon
410
411 Fixed a bug where some times were defaulting to the current time
412 instead of 00:00:00. Edward Avis
413
414 Fixed a bug in Date_NthDayOfYear with decimal days. Olga Polyakov
415
416 Fixed a bug where ParseDateDelta returned a delta if nothing was
417 passed in. Jim Hranicky
418
419 Fixed a bug where noon was case sensitive. Bion Pohl
420
421 Fixed a bug where dateTtime wasn't parsed. Jeremy Brinkley
422
423 Fixed a bug in holiday parsing involving recurrences. Jerry Wilcox
424
425 Fixed a bug where an invalid date passed to Date_IsWorkDay produced
426 an error message. Mark Rejhon
427
428 Fixed a bug where EraseHolidays wasn't taking affect correctly.
429 Chateauvieux Martial
430
431 Fixed a bug where the list produced by Date_Init couldn't be passed
432 back in to Date_Init. James Elson
433
434 Time zone fixes
435 Added `date +%Z` support in Date_TimeZone. Mike Bristow
436
437 Fixed a warning if the time zone is supplied as a +HHMM format.
438 Viola Mauro
439
440 Fixed South African time zone. David Sieborger
441
442 Documentation fixes
443 Added an example. Philip Jones
444
446 Bug fixes
447 `date` uses the user's path unless taint checking is on.
448
449 @::DatePath used instead of @Date::Manip::DatePath incorrectly.
450 Fixed by John Labovitz.
451
452 Fixed a bug where times such as "5 seconds ago" were not changing
453 over time. Matthew R. Sheahan
454
455 Time zone fixes
456 Added /etc/time zone support to &Date_TimeZone. Dirk Eddelbuettel
457
458 Added time zones. Dirk Eddelbuettel, Eli Selinger
459
461 (*) Added Events
462 Added Events section to config file and Events_List routine.
463 Prompted by Greg Schiedler and paid for by Alan Cezar.
464
465 (!) Removed Date_DaysSince999
466 The Date_DaysSince999 function (deprecated in 5.35) has been
467 removed.
468
469 New features
470 Added support for ISO8601 dates of the format dateTtime. Jason
471 Pierce
472
473 Got rid of the "use Cwd" and ENV{PATH} lines which means no more
474 taint problems.
475
476 Bug fixes
477 Fixed "dofw" format to return the day of the current week as
478 documented instead of next week. Dennis Ingram
479
480 Fixed a bug where dates in years 1900, 1800, etc. (but not 2000 or
481 other 400th years) were off by one day in DayOfWeek. Noble Thomas
482
483 Fixed a bug in ParseRecur (2-digit years not treated correctly).
484 Brian Rectanus
485
486 Time zone fixes
487 Added time zones. Nelson Ferreira, David Harper
488
489 Documentation fixes
490 Fixed some typos. Thanks to Alex Kapranoff
491
492 Typo fixed. Jim Hranicky
493
495 Bug fixes
496 Set ENV{PATH} to help with taint checking. Joe Lipson
497
498 Fixed a serious bug where HH:24:00 was broken due to support from
499 24:00:00. Scott Egashira
500
501 Time zone fixes
502 Fixed the sign on the military time zones. John Scott
503
505 New features
506 Added support for 24:00:00 to ParseDate. William H Asquith
507
508 Bug fixes
509 Fixed a bug in ParseRecur. Lewis Tsao
510
511 Fixed a bug is UnixDate (%l format). Jon Hedley
512
513 Fixed a bug in Date_GetNext/Prev. Christoph Haas
514
515 Fixed a bug in Date_IsHoliday. Report and patch by Rolf Beutner
516
517 Fixed a bug in UnixDate. Patch by Kurtis D. Rader
518
519 Rewrote IsInt routine based on discussion with Sean Hunter
520 (approximately 30% faster on a SPARC).
521
522 Time zone fixes
523 Added time zone. Paul Arzul
524
525 Documentation fixes
526 Fixed a documentation problem with Date_ConvTZ. Diab Jerius
527
529 (!) Deprecated Date_DaysSince999
530 In fixing support for the years 0001-0999, I rewrote
531 Date_DaysSince999 to be Date_DaysSince1BC. The Date_DaysSince999
532 function will be removed.
533
534 (*) (!) Added PathSep variable
535 In order to better support Win32 platforms, I added the PathSep
536 config variable. This will allow the use of paths such as
537 "c:\date" on Win32 platforms. Old config files on Win32 platforms
538 (which were not working correctly in many cases) may not work if
539 they contain path information to the personal config file.
540
541 (*) Recurrences now support flags
542 Flags for modifying recurrence dates are now supported.
543
544 (*) Improved holiday support considerably
545 Added support for recurrences and one-year-only holidays (the
546 latter requested first by Vishal Bhatia.
547
548 (*) Date_Init improved
549 Date_Init can now return a list of config variables if called in
550 array context. Based on a suggestion by Matt Tuttle.
551
552 New features
553 Modified Date_GetPrev/Date_GetNext to take $curr=2.
554
555 Now parses the Apache log file format "dd/mmm/yyyy:hh:mm:ss (time
556 zone)". Mark Ferguson
557
558 Added OS/2 support. Michael B. Babakov
559
560 Added Date_IsHoliday routine. Joe Pepin
561
562 Added recurrence support for Easter (first suggested by Abigail).
563
564 Bug fixes
565 Made "epoch" not case sensitive and fixed a bug where it would fail
566 in some languages. Caught because of Iosif's thorough Romanian
567 test file.
568
569 Fixed a problem where "in 5 days/weeks/months" sometimes wouldn't
570 get correctly parsed in other languages. Caught because of Iosif's
571 thorough Romanian test file.
572
573 Fixed a weakness in ParseDateDelta brought out by the Romanian
574 delta test file.
575
576 Fixed a bug causing warnings in the beta version of perl. Patch by
577 Paul Johnson.
578
579 Fixed support for years 0000-0999. Requested by Chris Vaughan
580
581 Several recurrence bug fixes.
582
583 Put all the my'ed global variables in a couple hashes to clean up
584 the namespace and to make a few future enhancements easier to do.
585
586 Fixed a bug where business weeks weren't being used correctly.
587 Qian Miao
588
589 Fixed a serious typo in the DaysSince1BC routine. Qian Miao
590
591 Fixed Veteran's day, added Good Friday (off by default). Peter
592 Chen
593
594 Cleaned up holiday variables and re-did holiday routines.
595
596 Time zone fixes
597 Added time zones. Oded Cohen
598
599 Language fixes
600 Added Romanian support (including 2 test files). Iosif Fettich
601
602 Corrected Swedish translations. Danne Solli
603
604 Some fixes to German translations. Peter Ehrenberg
605
606 Added Italian. Nicola Pedrozzi
607
608 Test fixes
609 Added recurrence test suite
610
611 Documentation fixes
612 Several documentation updates.
613
614 New recurrence documentation.
615
617 (!) (*) All Date::Manip variables are no longer accessible
618 Previously, Date::Manip variables were declared using a full
619 package name. Now, they are declared with the my() function. This
620 means that internal variables are no longer accessible outside of
621 the module. Based on suggestion by Tom Christiansen
622
623 (!) Week interpretation in business mode deltas
624 A business mode delta containing a week value used to be treated as
625 7 days. A much more likely interpretation of a week is Monday to
626 Monday, regardless of holidays, so this is now the behavior.
627
628 (!) %z UnixDate format
629 The %z UnixDate format used to return the time zone abbreviation.
630 It now returns it as a GMT offset (i.e. -0500). %Z still returns
631 the time zone abbreviation. Suggested by Tuc.
632
633 (!) Formats "22nd Sunday" returns the intuitive value
634 The date "22nd Sunday" used to return the Sunday of the 22nd week
635 of the year (which could be the 21st, 22nd, or 23rd Sunday of the
636 year depending on how weeks were defined). Now, it returns the
637 22nd Sunday of the year regardless.
638
639 (!) Separator in DD/YYmmm and mmmDD/YY formats no longer optional
640 Previously, the date "Dec1065" would return Dec 10, 1965. After
641 adding the YYYYmmm and mmmYYYY formats, this was no longer
642 possible. The separator between DD and YY is no longer optional,
643 so
644
645 Dec1065 returns December 1, 1065
646 Dec10/65 returns December 10, 1965
647
648 (*) Date_Cmp added
649 In one of the next versions of Date::Manip, the internal format of
650 the date will change to include time zone information. All date
651 comparisons should be made using Date_Cmp (which currently does
652 nothing more than call the Perl "cmp" command, but which will
653 important when comparing dates that include the time zone).
654
655 Added now in response to a question by Al Sorrell (I should have
656 added it earlier).
657
658 New features
659 Added exact business mode. Ian Duplisse
660
661 Added "mmmYYYY" and "YYYYmmm" formats. As a result, "DDYYmmm" and
662 "mmmDDYY" formats changed to "DD/YYmmm" and "mmmDD/YY" as described
663 above. David Twomey
664
665 Bug fixes
666 Fixed a bug where a date passed in as an array wasn't getting the
667 date removed from the array. Rick Wise
668
669 Added tests for MPE/iX OS. John Testa
670
671 Fixed a bug where WorkDayBeg=8:00 went into an infinite loop. Mark
672 Martinec
673
674 Changed a business week to be the same as an exact week. Abigail
675
676 Fixed a bug where "Sunday week 0" didn't work (only affected week
677 0) Gerald Rinske
678
679 Minor bug (my variable declared twice). Paul J. Schinder
680
681 Fixed a bug where "epoch SECONDS" was getting parsed wrong (for
682 SECONDS which could be interpreted as an ISO-8601 date). N. Thomas
683
684 Fixed a problem where init files were not being read. Mike Reetz
685
686 Time zone fixes
687 At the request of the UN, I added the SAT time zone. :-) Howard
688 Hendler
689
690 Fixed a bug where time zones were converted multiple times if
691 ConvTZ was set and DateCalc called. Steven Hartland
692
693 Language fixes
694 Added Portuguese. Rui Pedro da Silva Leite Pereira
695
696 Documentation fixes
697 A number of typos fixed. Ron Pero
698
700 Bug fixes
701 Fixed a bug where "1 month ago" was no longer working (and added it
702 to the test cases). This broke when I fixed the "-1second" bug in
703 the previous version. A result of this is that a number of
704 "deltas" can be parsed as dates (i.e. &ParseDate("1 hour 20 minutes
705 ago") is equivalent to &DateCalc("now","1 hour 20 minutes ago")).
706 Only text deltas can be used in this way (i.e.
707 &ParseDate("-0:0:0:0:1:20:0") will not work).
708
709 Language fixes
710 Added Spanish support. Bautista Jasso Javier
711
713 (!) Date_Init arguments
714 The old style Date_Init arguments that were deprecated in version
715 5.07 have been removed.
716
717 (!) (*) DateManip.cnf change
718 Changed .DateManip.cnf to Manip.cnf (to get rid of problems on OS's
719 that insist on 8.3 filenames) for all non-Unix platforms (Windows,
720 VMS, Mac). For all Unix platforms, it's still .DateManip.cnf . It
721 will only look in the user's home directory on VMS and Unix.
722
723 New features
724 Added "in N days" and "N days ago" formats. Tony Bowden.
725
726 Added cYYYY format to YYtoYYYY variable. Mark Rejhon.
727
728 Added 2 days/weeks/months later in both ParseDate and ParseDelta
729 (for Dutch support). Abigail.
730
731 Added "Y:M:0*-DOM:0:0:0" to ParseRecur. Jeff Yoak.
732
733 Bug fixes
734 Fixed a bug where the deltas could be off by up to a couple minutes
735 in some rare cases. Herman Horsten.
736
737 Fixed an "uninitialized symbol" warning. Mark D. Anderson.
738
739 Fixed a bug where holidays weren't erased. Jonathan Wright.
740
741 Applied a bug fix from Joe Chapman where the %W/%U UnixDate formats
742 were frequently wrong.
743
744 Several minor fixes and improvements. Abigail.
745
746 Added some VMS support. Charles Lane.
747
748 Fixed a bug which caused a test to fail on some systems. Charles
749 Lane.
750
751 Fixed a bug where "-1second" was treated as a date rather than a
752 delta in DateCalc. Kenneth Ingham
753
754 Added a bit to the Makefile.PL (as it was distributed in the Win32
755 Perl Resource Kit). Murray Nesbitt
756
757 Time zone fixes
758 Allowed time zones of the format STD-#DST-#. Peter Gordon.
759
760 Added time zone support for "+0500 (EST)". Tom Christiansen.
761
762 Restricted time zones parsing to 0000-2359 instead of 0000-9999.
763 Frank Cusack
764
765 Added time zones. W. Phillip Moore, Michael Smith, Samuli
766 Karkkainen
767
768 Language fixes
769 Added Polish support. Ian Wojtowicz.
770
771 Added Dutch support. Abigail.
772
773 Added A.M. and P.M. parsing (not just AM and PM). William W.
774 Arnold.
775
776 Fixed a German initialization problem. Thomas Horster-Moller and
777 Christian Reithmaier
778
779 Documentation fixes
780 Documentation fix. Peter Gordon.
781
782 Minor documentation changes. Yamamoto Hiroshi.
783
784 Added info about the RCS problem. Supplied by Kipp E. Howard.
785
787 New features
788 Added "epoch SECS" format to ParseDateString. Thanks to: Joshua M.
789 Burgin.
790
791 Added a patch by Blair Zajac to make Date_NthDayOfYear work with
792 decimal days.
793
794 Bug fixes
795 Fixed a bug in ParseDateDelta (seems to appear only in 5.005 pre-
796 releases). Found by Larry W. Virden.
797
798 Missed one form in ParseDate. Noted by Tuc.
799
800 Fixed a bug where "15:00:00" couldn't be parsed. Michael Pizolato.
801
802 Split Manip.pm. New files are HISTORY, TODO, Manip.pod.
803
804 Fixed a bug in ParseDateDelta. Antonio Rosella.
805
806 Removed the only occurrence of $& (which may speed some things up).
807 Fix by Ken Williams. First suggested by Abigail.
808
809 Fixed an overflow bug in doing date calculations with 2 dates more
810 than 70 years apart. Fix by Vishal Bhatia.
811
812 Fixed a bug where "5:00pm" wasn't always parsed correctly. Thanks
813 to Jim Trocki.
814
815 Fixed a bug in UnixDate (it wouldn't return the correct string for
816 a format who's last character was '0') noted by Ramin V.
817
818 Time zone fixes
819 Relaxed some restrictions on time zones so ISO-8601 dates can use
820 non-ISO-8601 time zones. Noted by John Chambers.
821
822 Fixed a bug in converting time zones with a minutes field (+1030).
823 Found by Paul O.
824
825 Language fixes
826 Some fixes to the French translations by Emmanuel Bataille.
827
828 Added German support. Thanks to Andreas C. Poszvek.
829
830 Documentation fixes
831 Minor documentation fixes. Will Linden.
832
833 Fixed a documentation problem with Date_GetPrev. It was still 0-6
834 instead of 1-7. Thanks to Robert Klep.
835
837 (!) (*) Delta format changed
838 A week field has been added to the internal format of the delta.
839 It now reads "Y:M:W:D:H:MN:S" instead of "Y:M:D:H:MN:S".
840
841 (*) Now handles recurring events
842 Added ParseRecur. First suggested by Chris Jackson.
843
844 New features
845 All routines can now take either a 2- or 4-digit year.
846
847 Added Delta_Format. First suggested by Alan Burlison.
848
849 Added Date_SetDateField. Thanks to Martin Thurn.
850
851 Bug fixes
852 Made the $err argument to DateCalc optional.
853
854 Changed the name of several of the library routines (not the
855 callable ones) to standardize naming.
856
858 (!) Long running processes may give incorrect time zone
859 A process that runs during a time zone change (Daylight Saving Time
860 specifically) may report the wrong time zone. See the UpdateCurrTZ
861 variable for more information.
862
863 (!) UnixDate "%J", "%W", and "%U" formats fixed
864 The %J, %W, and %U will no longer report a week 0 or a week 53 if
865 it should really be week 1 of the following year. They now report
866 the correct week number according to ISO 8601.
867
868 New features
869 Added YYtoYYYY variable. Suggested by Michel van der List.
870
871 Added the UpdateCurrTZ variable to increase speed at the cost of
872 being wrong on the time zone.
873
874 Added British date formats. Thanks to Piran Montford.
875 Monday week
876 today week
877 as well as some US formats
878 in 2 months
879 next month
880
881 Time can now be written 5pm. Piran Montford.
882
883 Added the TomorrowFirst variable and Date_NearestWorkDay function.
884
885 Added UnixDate formats %G and %L to correctly handle the year.
886 Thanks to Samuli Karkkainen.
887
888 Added ForceDate variable. Based on a suggestion by Christian
889 Campbell.
890
891 Bug fixes
892 Now passes Taint checks. Thanks to Mike Fuhr, Ron E. Nelson, and
893 Jason L Tibbitts III.
894
895 Put everything in a "use integer" pragma.
896
897 Added a missing space in the %g UnixDate format. Thanks to Mike
898 Booth.
899
900 Removed all mandatory call to Date_Init (only called when current
901 time is required). Significantly faster.
902
903 Fixed a bug in Date_ConvTZ. Thanks to Patrick K Malone.
904
905 Fixed a bug in Date_IsWorkDay.
906
907 Time zone fixes
908 Fixed some Australian time zones. Kim Davies.
909
910 Language fixes
911 Cleaned up multi-lingual initialization and added the IntCharSet
912 variable.
913
914 Improved French translations. Thanks to Emmanuel Bataille.
915
916 Added "Sept" as a recognized abbreviation. Thanks to Martin Thurn.
917
918 Typo in the French initialization. Thanks to Michel Minsoul.
919
920 Test fixes
921 Fixed the tests to not fail in 1998.
922
923 Documentation fixes
924 Documented how to get around Micro$oft problem. Based on a mail by
925 Patrick Stepp.
926
928 (*) ISO 8601 support
929 ISO 8601 dates are now parsed. This resulted in several other
930 changes specified below.
931
932 (!) (*) ParseDate formats removed
933 As a result of ISO 8601 support, some formats which previously
934 worked may no longer be parsed since they conflict with an ISO 8601
935 format. These include MM-DD-YY (conflicts with YY-MM-DD) and
936 YYMMDD (conflicts with YYYYMM). MM/DD/YY still works, so the first
937 form can be kept easily by changing "-" to "/". YYMMDD can be
938 changed to YY-MM-DD before being parsed. Whenever parsing dates
939 using dashes as separators, they will be treated as ISO 8601 dates.
940 You can get around this by converting all dashes to slashes.
941
942 (!) (*) Week day numbering
943 The day numbering was changed from 0-6 (Sun-Sat) to 1-7 (Mon-Sun)
944 to be ISO 8601 compatible. Weeks start on Monday (though this can
945 be overridden using the FirstDay config variable) and the 1st week
946 of the year contains Jan 4 (though it can be forced to contain Jan
947 1 with the Jan1Week1 config variable).
948
949 New features
950 Several new parsing formats added, including:
951 "Friday" suggested by Rob Perelman
952 "12th" suggested by Rob Perelman
953 "last day of MONTH" suggested by Chadd Westhoff
954
955 Added ParseDateString for speed (and simplicity for modifying
956 ParseDate)
957
958 Added %J and %K formats to UnixDate.
959
960 Added Date_DaysInMonth.
961
962 Bug fixes
963 Reorganized ParseDate more efficiently.
964
965 Fixed some incorrect uses of $in instead of $future in ParseDate.
966 Thanks to Erik Corry.
967
968 Added some speedups (more to come).
969
970 Test fixes
971 Cleaned up testing mechanism a bit and added tests for ISO 8601
972 formats.
973
975 Version 5.11 was never released to CPAN.
976
977 Bug fixes
978 Added one more check for NT perl. Thanks to Rodney Haywood.
979
980 Added some comments to help me keep my personal libraries up-to-
981 date with respect to Date::Manip and vice-versa.
982
983 Fixed a bug which showed up in French dates (though it could happen
984 in other languages as well). Thanks to Georges Martin.
985
986 Fixed a bug in DateCalc. Thanks to Thomas Winzig.
987
988 Removed the "eval" statement from CheckFilePath which causes a suid
989 c wrapper program to die when it calls a Date::Manip script.
990 Thanks to Hank Hughes.
991
992 Fixed a bug in business mode calculations. Thanks to Sterling
993 Swartwout.
994
995 Fixed a bug in which "1997023100:00:00" was accepted as valid.
996 Thanks to Doug Emerald.
997
998 Fixed a bug in which ConvTZ was not used correctly in ParseDate.
999 Re-did portions of Date_ConvTZ. Thanks to Vivek Khera.
1000
1001 Fixed a bug in business mode calculations. Thanks to Ian Duplisse.
1002
1003 Added $^X check for Win95 perl. Thanks to Walter Soldierer.
1004
1005 Missed one call to NormalizeDelta so the output was wrong. Thanks
1006 to Brad A. Buikema.
1007
1008 Time zone fixes
1009 Added time zones. Paul Gillingwater, Rosella Antonio, Kang Taewook
1010
1012 Bug fixes
1013 Cleaned up In, At, and On regexps.
1014
1015 Added 2 checks for MSWin32 (date command and getpw* didn't work).
1016 Thanks to Alan Humphrey.
1017
1018 Fixed two bugs in the DateCalc routines. Pointed out by Kevin
1019 Baker.
1020
1021 Added a check for Windows_95. Thanks to Charlie W.
1022
1023 Cleaned up checks for MacOS and Microsoft OS's. Hopefully I'm
1024 catching everything. Thanks to Charlie Wu for one more check.
1025
1026 Fixed a typo which broke Time%Date (Date=dd%mmm%yy) format. Thanks
1027 to Timothy Kimball.
1028
1029 Time zone fixes
1030 Fixed some problems with how "US/Eastern" type time zones were
1031 used. Thanks to Marvin Solomon.
1032
1033 Test fixes
1034 Tests will now run regardless of the time zone you are in.
1035
1036 Test will always read the DateManip.cnf file in t/ now.
1037
1038 A failed test will now give slightly more information.
1039
1040 DateManip.cnf file in t/ now sets ALL options to override any
1041 changes made in the Manip.pm file.
1042
1043 Documentation fixes
1044 Added documentation for backwards incompatibilities to POD.
1045
1046 Fixed some problems in POD documentation. Thanks to Marvin
1047 Solomon.
1048
1049 Fixed minor POD error pointed out by John Perkins.
1050
1051 Changed documentation for Date_IsWorkDay (it was quite confusing
1052 using a variable named $time). Thanks to Erik M. Schwartz.
1053
1054 Fixed typo in documentation (midnight misspelled). Thanks to
1055 Timothy Kimball.
1056
1058 Bug fixes
1059 Upgraded to 5.003_23 and fixed one problem associated with it.
1060
1061 Used carp and changed all die's to confess.
1062
1063 Replaced some UNIX commands with perl equivalents (date with
1064 localtime in the tests, pwd with cwd in the path routines).
1065
1066 Cleaned up all routines working with the path.
1067
1068 Test fixes
1069 Tests work again (broke in 5.08). Thanks to Alex Lewin and Michael
1070 Fuhr for running debugging tests.
1071
1073 Bug fixes
1074 (*) Fixed serious bug in ConvTZ pointed out by David Hall.
1075
1076 (*) Modified Date_ConvTZ (and documented it).
1077
1079 Released two patches for 5.07.
1080
1081 Bug fixes
1082 Fixed a bug where a delta component of "-0" would mess things up.
1083 Reported by Nigel Chapman.
1084
1085 Time zone fixes
1086 (*) Can now understand PST8PDT type zones (but only in
1087 Date_TimeZone).
1088
1089 Added lots of time zone abbreviations.
1090
1091 Test fixes
1092 Fixed some tests (good for another year).
1093
1095 (!) UnixDate "%s" format
1096 Used to return the number of seconds since 1/1/1970 in the current
1097 time zone. It now returns the number of seconds since 1/1/1970
1098 GMT. The "%o" format was added which returns what "%s" previously
1099 did.
1100
1101 (!) (*) Internal format of delta
1102 The format for the deltas returned by ParseDateDelta changed.
1103 Previously, each element of a delta had a sign attached to it
1104 (+1:+2:+3:+4:+5:+6). The new format removes all unnecessary signs
1105 by default (+1:2:3:4:5:6). Also, because of the way deltas are
1106 normalized (see documentation on ParseDateDelta), at most two signs
1107 are included. For backwards compatibility, the config variable
1108 DeltaSigns was added. If set to 1, all deltas include all 6 signs.
1109
1110 (!) (*) Date_Init arguments
1111 The format of the Date_Init calling arguments changed. The old
1112 method
1113
1114 Date_Init($language,$format,$tz,$convtz);
1115
1116 is still supported , but this support will likely disappear in the
1117 future. Use the new calling format instead:
1118
1119 Date_Init("var=val","var=val",...);
1120
1121 NOTE: The old format is no longer supported as of version 5.32 .
1122
1123 (*) Added weeks to ParseDateDelta.
1124 Suggested by Mike Bassman. Note that since this is a late
1125 addition, I did not change the internal format of a delta.
1126 Instead, it is added to the days field.
1127
1128 (*) Now reads a config file.
1129 Refer to the Date_Init documentation for details.
1130
1131 (*) Added business mode.
1132 See documentation. Suggested by Mike Bassman.
1133
1134 New features
1135 (*) Modified how deltas are normalized and added the DeltaSigns
1136 config variable.
1137
1138 Added %q format "YYYYMMDDHHMMSS" to UnixDate. Requested by Rob
1139 Perelman. Also added %P format "YYYYMMDDHH:MM:SS".
1140
1141 Added a new config variable to allow you to work with multiple
1142 internal formats (with and without colons). Requested by Rob
1143 Perelman. See Date_Init documentation.
1144
1145 Added the following formats suggested by Andreas Johansson:
1146 Sunday week 22 [in 1996] [at 12:00]
1147 22nd Sunday [in 1996] [at 12:00]
1148 Sunday 22nd week [in 1996] [at 12:00]
1149
1150 Added a new config variable to allow you to define the first day of
1151 the week. See Date_Init documentation.
1152
1153 Added the following formats to ParseDate for convenience (some were
1154 suggested by Mike Bassman):
1155 next/last Friday [at time]
1156 next/last week [at time]
1157 in 2 weeks [at time]
1158 2 weeks ago [at time]
1159 Friday in 2 weeks
1160 in 2 weeks on Friday
1161 Friday 2 weeks ago
1162 2 weeks ago Friday
1163
1164 Added Date_SecsSince1970GMT, moved the %s format to %o (secs since
1165 1/1/70) and added %s format (secs since 1/1/70 GMT). Based on
1166 suggestions by Mark Osbourne. Note this introduces a minor
1167 backward incompatibility described above.
1168
1169 Date_SetTime now works with international time separators.
1170
1171 Added the %g format (%a, %d %b %Y %H:%M:%S %z) for an RFC 1123
1172 date. Suggested by Are Bryne.
1173
1174 Added options to delete existing holidays and ignore global config
1175 file.
1176
1177 Date_GetNext and Date_GetPrev now return the next/prev occurrence
1178 of a time as well as a day. Suggested by Are Bryne.
1179
1180 In approximate mode, deltas now come out completely normalized
1181 (only 1 sign). Suggested by Rob Perelman.
1182
1183 Added Date::Manip::InitDone so initialization isn't duplicated.
1184
1185 Added a 3rd internal format to store YYYY-MM-DD HH:MN:SS (iso
1186 8601).
1187
1188 Added a config variable to allow you to work with 24 hour business
1189 days. Suggested by Mike Bassman.
1190
1191 ParseDateDelta now returns "" rather than "+0:0:0:0:0:0" when there
1192 is an error.
1193
1194 Bug fixes
1195 (*) The d:h:mn:s of ALL deltas are normalized.
1196
1197 Huge number of code changes to clean things up.
1198
1199 Subroutines now check to see if 4 digit years are entered.
1200 Suggested by Are Bryne.
1201
1202 Added local($_) to all routines which use $_. Suggested by Rob
1203 Perelman.
1204
1205 Complete rewrite of DateCalc.
1206
1207 Fixed a bug where UnixDate %E format didn't work with single digit
1208 dates. Patch supplied by Jyrgen Nyrgaard.
1209
1210 Fixed a bug where "today" was not converted to the correct time
1211 zone.
1212
1213 Time zone fixes
1214 Fixed bug in Date_TimeZone where it didn't recognize +HHMN type
1215 time zones. Thanks to Are Bryne.
1216
1217 Added WindowsNT check to Date_TimeZone to get around NT's weird
1218 date command. Thanks to Are Bryne.
1219
1220 Fixed typo (CSD instead of CST).
1221
1222 Fixed sign in military time zones making Date::Manip RFC 1123
1223 compliant (except that time zone information is not stored in any
1224 format)
1225
1226 Test fixes
1227 (*) Added test suite!
1228
1230 New features
1231 Added "today at time" formats.
1232
1233 ParseDateDelta now normalizes the delta as well as DateCalc.
1234
1235 Added %Q format "YYYYMMDD" to UnixDate. Requested by Rob Perelman.
1236
1237 Bug fixes
1238 Fixed another two places where a variable was declared twice using
1239 my (thanks to Ric Steinberger).
1240
1241 Fixed a bug where fractional seconds weren't parsed correctly.
1242
1243 Fixed a bug where "noon" and other special times were not parsed in
1244 the "which day of month" formats.
1245
1246 Fixed a minor bug where a few matches were case sensitive.
1247
1248 The command "date +%Z" doesn't work on SunOS machines (and perhaps
1249 others) so 5.05 is effectively broken. 5.06 released to fix this.
1250 Reported by Rob Perelman.
1251
1253 New features
1254 Changed deltas to be all positive or all negative when produced by
1255 DateCalc. Suggested by Steve Braun
1256
1257 Added DateManipVersion routine.
1258
1259 (*) Parses RFC 822 dates (thanks to J.B. Nicholson-Owens for
1260 suggestion).
1261
1262 Parses ctime() date formats (suggested by Matthew R. Sheahan).
1263
1264 Now supports times like "noon" and "midnight".
1265
1266 Bug fixes
1267 Fixed bug introduced in 5.04 when default day set to 1. When no
1268 date given, have day default to today rather than 1. It only
1269 defaults to one if a partial date is given.
1270
1271 Fixed bug where Date_DaysSince999 returned the wrong value (the
1272 error did not affect any other functions in Date::Manip due to the
1273 way it was called and the nature of the error). Pointed out by
1274 Jason Baker
1275
1276 Dates with commas in them are now read properly.
1277
1278 Fixed two places where a variable was declared twice using my
1279 (thanks to Ric Steinberger).
1280
1281 Hopefully fixed installation problems.
1282
1283 Got rid of the last (I think) couple of US specific strings.
1284
1285 Fixed bug in Date_SetTime (didn't work with $hr,$min,$sec < 10).
1286
1287 Added ModuloAddition routine and simplified DateCalc.
1288
1289 Time zone fixes
1290 (*) Now supports time zones.
1291
1292 (*) Added Date_ConvTZ routine for time zone support.
1293
1294 Date_TimeZone will now also check `date '+%Z'` suggested by Aharon
1295 Schkolnik.
1296
1297 Language fixes
1298 Added Swedish translation (thanks to Andreas Johansson
1299
1300 The time separators are now language specific so the French can
1301 write "10h30" and the Swedes can write "10.30". Suggested by
1302 Andreas Johansson.
1303
1304 Documentation fixes
1305 Fixed bad mistake in documentation (use Date::Manip instead of use
1306 DateManip) pointed out by tuc@valhalla.stormking.com
1307
1308 Minor improvements to documentation.
1309
1310 Documented the 'sort within a sort' bug.
1311
1312 Fixed type in documentation/README pointed out by James K. Bence.
1313
1315 New features
1316 Added support for fractional seconds (as generated by Sybase).
1317 They are parsed and ignored. Added by Kurt Stephens
1318
1319 Bug fixes
1320 Fixed bugs reported by J.B. Nicholson-Owens
1321 "Tue Jun 25 1996" wasn't parsed correctly (regexp was case
1322 sensitive)
1323 full day names not parsed correctly
1324 the default day in ErrorCheck should be 1, NOT currd since when
1325 currd>28, it may not be a valid date for the month
1326
1328 Bug fixes
1329 Fixed a couple of bugs in UnixDate.
1330
1331 Declared package variables to avoid warning "Identifier XXX used
1332 only once". Thanks to Peter Bray for the suggestion.
1333
1335 New features
1336 (*) Added some internationalization (most of the routines had to be
1337 modified at least slightly)
1338
1339 Bug fixes
1340 Fixed a bug where repeated calls to ParseDate("today") was not
1341 reset
1342
1343 Replaced the %Date::Manip::Date variable with a large number of
1344 other, more flexible variables
1345
1346 Rewrote the Init routine
1347
1349 New features
1350 Added %F format to UnixDate. Rob Perelman
1351
1352 Added "Date at Time" types
1353
1354 Weekdays can be entered and checked
1355
1356 Two digit years fall in the range CurrYear-89 to CurrYear+10
1357
1358 Bug fixes
1359 Reworked a number of the ParseDate regular expressions to make them
1360 more flexible
1361
1362 Documentation fixes
1363 Fixed a typo (Friday misspelled Fridat). Rob Perelman
1364
1365 Documentation problem for \$err in DateCalc. Rob Perelman
1366
1368 (*) Switched to a package.
1369 Patch supplied by Peter Bray:
1370 renamed to Date::Manip
1371 changed version number to 2 decimal places
1372 added POD documentation
1373
1374 Thanks to Peter Bray, Randal Schwartz, Andreas Koenig for
1375 suggestions
1376
1377 Bug fixes
1378 Fixed a bug pointed out by Peter Bray where it was complaining of
1379 an uninitialized variable.
1380
1382 New features
1383 Added "which dofw in mmm" formats to ParseDate. Mark Dedlow
1384
1385 Bug fixes
1386 Added a bugfix of Adam Nevins where "12:xx pm" used to be parsed
1387 "24:xx:00".
1388
1390 New features
1391 UnixDate will now return a scalar or list depending on context
1392
1393 ParseDate/ParseDateDelta will now take a scalar, a reference to a
1394 scalar, or a reference to an array
1395
1396 (*) Simple time zone handling
1397
1398 (*) Added Date_SetTime, Date_GetPrev, Date_GetNext
1399
1400 Bug fixes
1401 Added copyright notice (requested by Tim Bunce)
1402
1404 New features
1405 (*) Added DateCalc
1406
1407 Bug fixes
1408 Changed %DATE_ to %DateManip::Date
1409
1410 (*) Rewrote ParseDateDelta
1411
1413 (*) First public release
1414
1415 New features
1416 Added time first formats to ParseDate
1417
1418 Bug fixes
1419 (*) Switched to perl 5
1420
1421 Cleaned up ParseDate, ParseDateDelta
1422
1424 New features
1425 Added today/tomorrows/etc. formats
1426
1427 (*) Added UnixDate
1428
1429 (*) Added ParseDateDelta
1430
1431 Bug fixes
1432 Added %DATE_ global variable to clean some stuff up
1433
1434 Simplified several routines
1435
1437 New features
1438 Included ideas from Time::ParseDate (David Muir Sharnoff)
1439
1440 Included ideas from date.pl 3.2 (Terry McGonigal)
1441
1442 (*) Added seconds to ParseDate
1443
1444 Bug fixes
1445 Made error checking much nicer
1446
1448 New features
1449 Added a few date formats
1450
1451 Bug fixes
1452 Made months case insensitive
1453
1455 New features
1456 Added leap year checking
1457
1458 Both "Feb" and "February" formats available
1459
1461 (*) Initial release
1462 Though not released to the public, the initial released combined
1463 routines from several scripts into one library.
1464
1466 Please refer to the Date::Manip::Problems documentation for information
1467 on submitting bug reports or questions to the author.
1468
1470 Date::Manip - main module documentation
1471
1473 This script is free software; you can redistribute it and/or modify it
1474 under the same terms as Perl itself.
1475
1477 Sullivan Beck (sbeck@cpan.org)
1478
1479
1480
1481perl v5.36.0 2023-03-08 Date::Manip::Changes5(3)