Blame internal/TODO

Packit Service 653591
Add option to Recur: ignore holidays
Packit Service 653591
   then flags like NBD ignore holidays (but count weekends)
Packit Service 653591
When calculating holidays, use this option by default to simplify
Packit Service 653591
   holidays.  Then, order of definitions is not important.
Packit Service 653591
Packit Service 653591
Add options:
Packit Service 653591
   onlyiso8601, etc. to parse
Packit Service 653591
   no-delta-secs   (not delta as a plain number)
Packit Service 653591
   no-timezone
Packit Service 653591
Packit Service 653591
Can I reduce the number of timezone modules loaded when parsing a date
Packit Service 653591
with an abbreviation or offset by loading one and testing it before
Packit Service 653591
loading a second?
Packit Service 653591
Packit Service 653591
Make sure the following work:
Packit Service 653591
   1*12:0:24:0:0:0*FW1 = Christmas Day (observed)
Packit Service 653591
   December 25 2015    = Christmas Day
Packit Service 653591
Packit Service 653591
Add a new type of recurrence (???):
Packit Service 653591
   *Christmas Day*NWD
Packit Service 653591
Packit Service 653591
Add ability to supply holidays via. a list rather than a config file.
Packit Service 653591
   ksublondie on perlmonks
Packit Service 653591
Packit Service 653591
########################################################################
Packit Service 653591
# Deprecated variables:
Packit Service 653591
Packit Service 653591
03/01/2017  TZ
Packit Service 653591
Packit Service 653591
Delete Obj.pm line 89 block
Packit Service 653591
Packit Service 653591
########################################################################
Packit Service 653591
# +1 significant release
Packit Service 653591
########################################################################
Packit Service 653591
Packit Service 653591
Check performance if changing
Packit Service 653591
   sub ... {
Packit Service 653591
      return &sub(...)
Packit Service 653591
   }
Packit Service 653591
to
Packit Service 653591
      goto &sub(...)
Packit Service 653591
Packit Service 653591
In Recur.pm, handle encodings in parse
Packit Service 653591
Packit Service 653591
Add delta.parse_LANG tests
Packit Service 653591
Packit Service 653591
Add UseTZ
Packit Service 653591
  = %all      use all timezones
Packit Service 653591
  = %local    use local timezone
Packit Service 653591
  = Z1 Z2 ... use zones Z1, Z2, etc. (one can be %local)
Packit Service 653591
Only affects parsing.
Packit Service 653591
Packit Service 653591
Add ways to get timezone in cygwin
Packit Service 653591
Packit Service 653591
Cache Date::Manip::TZ::zone for ($abbrev,isdst), ($abbrev,$isdst,$offset),
Packit Service 653591
other???
Packit Service 653591
Packit Service 653591
Profile it and look for optimizations.
Packit Service 653591
Packit Service 653591
Date::Manip::Base : get rid of
Packit Service 653591
   _calc_date_time_strings
Packit Service 653591
   _delta_convert
Packit Service 653591
Packit Service 653591
Benchmarks
Packit Service 653591
   Modules
Packit Service 653591
      5.x
Packit Service 653591
      6.00
Packit Service 653591
      6.00 parse_format
Packit Service 653591
      DateCalc
Packit Service 653591
      TimeDate
Packit Service 653591
      ???
Packit Service 653591
   Tests
Packit Service 653591
      10,000 dates (parse)                          time + size
Packit Service 653591
      10,000 dates (parse + 2 adds + 1 unix date)   time + size
Packit Service 653591
      10,000 scripts (parse 1 date + 2 adds + 1 unix date each) time
Packit Service 653591
Packit Service 653591
Rewrite Problems.pod (Date Manip is slow)
Packit Service 653591
Packit Service 653591
Clear out all problems from CPAN
Packit Service 653591
Packit Service 653591
Methods which require a valid object (secs_since_1970_GMT) should exit
Packit Service 653591
instead of trying to perform the operation if the object is invalid.
Packit Service 653591
RT #60662 (Matt Blythe)
Packit Service 653591
Packit Service 653591
########################################################################
Packit Service 653591
# +2 significant release
Packit Service 653591
########################################################################
Packit Service 653591
Packit Service 653591
Everywhere a timezone can be entered, allow:
Packit Service 653591
   zone
Packit Service 653591
   abbrev
Packit Service 653591
   offset
Packit Service 653591
followed by an option:
Packit Service 653591
   std       either STD or DST time, test STD first (default always)
Packit Service 653591
   dst       either STD or DST time, test DST first
Packit Service 653591
   stdonly   only test STD
Packit Service 653591
   dstonly   only test DST
Packit Service 653591
Packit Service 653591
Change Date::Manip::Base so that $date input can be reference or
Packit Service 653591
string.
Packit Service 653591
Packit Service 653591
Clear as much of the backlog of suggestions as possible.
Packit Service 653591
Packit Service 653591
########################################################################
Packit Service 653591
# TO DO
Packit Service 653591
########################################################################
Packit Service 653591
Packit Service 653591
Make sure there is a correspondance between:
Packit Service 653591
  time,localtime,gmtime
Packit Service 653591
  Date_SecsSince1970,Date_SecsSince1970GMT
Packit Service 653591
  UnixDate(...,"%s"),UnixDate(...,"%u")
Packit Service 653591
and document it all.
Packit Service 653591
Packit Service 653591
Support timezones of the format +500.  David Coppit
Packit Service 653591
Packit Service 653591
Make sure that &DateCalc($date1,"") returns an error.  Jim Anderson
Packit Service 653591
Packit Service 653591
Change the Jan1Week1 variable to accept the values "m1-m7" (1st week contains
Packit Service 653591
Jan X) or "d1-d7" (1st week contains the 1st dX day of week ... so d1
Packit Service 653591
means that the 1st week of the year contains the 1st Monday).
Packit Service 653591
Packit Service 653591
Free up the '%u', '%h', and '%X' printf formats. Reserve '%X' for
Packit Service 653591
  extended formats (%Xa, %Xb, ...).
Packit Service 653591
Packit Service 653591
########################################################################
Packit Service 653591
# TO CONSIDER
Packit Service 653591
########################################################################
Packit Service 653591
Packit Service 653591
Special date formats in language file:
Packit Service 653591
   extra{LABEL} = [ ... ]         extra words of type LABEL
Packit Service 653591
   offset_date =>
Packit Service 653591
      FORMAT => 'OFFSET'
Packit Service 653591
         where FORMAT is similar to parse_format
Packit Service 653591
         %LABEL is a regexp with any of the words
Packit Service 653591
         OFFSET can include %y, %d, %w, %m, %h, %mn, $s in them
Packit Service 653591
   same for offset_time, times, and others
Packit Service 653591
   ex.
Packit Service 653591
      offset_time =>  { "%h o'clock" => "%h:00:00" }
Packit Service 653591
   Support some of the special Russian dates supplied by Yuri Nikulin
Packit Service 653591
Packit Service 653591
Add a method:
Packit Service 653591
   ($date0,$date1) = $date->week_range();
Packit Service 653591
where $date0 and $date1 are the start and end of the week containing
Packit Service 653591
$date.  Ha Quach
Packit Service 653591
Packit Service 653591
Add Date_LocaleInit which calls Date_Init and then sets DateFormat
Packit Service 653591
config varialbe.  Benjamin Low
Packit Service 653591
   Essentially, I use POSIX::strftime to print a known date in the locale
Packit Service 653591
   'native' format ('%x'), and parse the result to determine d/m/y, m/d/y,
Packit Service 653591
   or y/m/d.
Packit Service 653591
   
Packit Service 653591
   Here's what I do for Date::Parse, perhaps for your module you could just
Packit Service 653591
   substitute a default value for DateFormat:
Packit Service 653591
   
Packit Service 653591
   sub _dmorder
Packit Service 653591
   # determine the "natural" day/month order for the current locale
Packit Service 653591
   # - returns a sub which will expect two arguments (month, day) and
Packit Service 653591
   #   return the arguments swapped as appropriate
Packit Service 653591
   {  
Packit Service 653591
	# %x - preferred (year, month, day) representation
Packit Service 653591
	# - some examples: 1999-12-31, 31/12/99, 30.12.1999, 12/31/99
Packit Service 653591
	my @d = (POSIX::strftime('%x', 0, 0, 0, 31, 12-1, 99) =~ 
Packit Service 653591
		/(\d+)\D+(\d+)\D+(\d+)/);
Packit Service 653591
Packit Service 653591
	# check we got one each of "31", "12", and "[19]99" back
Packit Service 653591
	$@ = "couldn't determine day,month order (got [@d])";
Packit Service 653591
	warn("$@\n"), return sub { @_ } unless @d == 3;
Packit Service 653591
	my %d;	$d{$1} = $d{$2} = $d{$3} = 1;
Packit Service 653591
	warn("$@\n"), return sub { @_ } 
Packit Service 653591
		unless ($d{31} and $d{12} and ($d{99} or $d{1999}));
Packit Service 653591
Packit Service 653591
	if ($1 == 31) { $@ = undef; return sub { ($_[1], $_[0]) } };	# d/m/y
Packit Service 653591
	if ($2 == 31) { $@ = undef; return sub { ($_[0], $_[1]) } };	# m/d/y
Packit Service 653591
	if ($3 == 31) { $@ = undef; return sub { ($_[0], $_[1]) } };	# y/m/d
Packit Service 653591
Packit Service 653591
	return sub { @_ };	# undetermined, use default
Packit Service 653591
   }
Packit Service 653591
   
Packit Service 653591
   *dmorder = _dmorder();
Packit Service 653591
   
Packit Service 653591
   # and then later in Parse::Date, after month/day regexps (\d+/\d+)...
Packit Service 653591
     - ($month, $day) = ($1, $2);    becomes...
Packit Service 653591
     + ($month, $day) = dmorder($1, $2);
Packit Service 653591
Packit Service 653591
Packit Service 653591
Make DateFormat variable handle y/m/d y/d/m m/d/y and d/m/y formats
Packit Service 653591
in addition to m/d vs. d/m .  Also, make "%D" and "%x" UnixDate formats
Packit Service 653591
use this variable.  Benjamin Low
Packit Service 653591
Packit Service 653591
Make the following work for ParseDate Adrian Conte:
Packit Service 653591
  1 epoch
Packit Service 653591
  epoch 1
Packit Service 653591
  -1 epoch
Packit Service 653591
  epoch -1
Packit Service 653591
Packit Service 653591
Make work weeks able to start and stop on arbitrary days (even across
Packit Service 653591
weekends).  Mohammed Saggaf
Packit Service 653591
Packit Service 653591
Switch to Math::BigInt instead of using "no integer".  Vishal Bhatia
Packit Service 653591
Packit Service 653591
Use autoloader.  Ted Ashton
Packit Service 653591
Packit Service 653591
Better support for fractional seconds.  RT 61535
Packit Service 653591
Packit Service 653591
########################################################################
Packit Service 653591
# GRANULARITY
Packit Service 653591
########################################################################
Packit Service 653591
Packit Service 653591
$flag=&Date_GranularityTest($date,$base,$granularity [,$flags] [$width])
Packit Service 653591
   $date and $base are dates
Packit Service 653591
   $granularity and $width are deltas
Packit Service 653591
   $flags is a list of flags
Packit Service 653591
Packit Service 653591
   To test if a day is one of every other Friday (starting at Friday
Packit Service 653591
   Feb 7, 1997), go:
Packit Service 653591
      $base=&ParseDate("Friday Feb 7 1997");
Packit Service 653591
      $date=&ParseDate("...");
Packit Service 653591
      $granularity=&ParseDateDelta("+ 2 weeks");
Packit Service 653591
      $flag=&Date_Granularity($date,$base,$granularity,"exact");
Packit Service 653591
   If $flag is 1, the $date is a 2nd Friday from Feb 7.
Packit Service 653591
Packit Service 653591
   The most important field in $granularity is the last non-zero element.
Packit Service 653591
   In the above example, 2 weeks returns the delta 0:0:14:0:0:0 so the
Packit Service 653591
   last non-zero element is days with a value of 14.
Packit Service 653591
Packit Service 653591
   If $flags is empty, $date is checked to see if it occurs some multiple
Packit Service 653591
   of 14 days before or after $base.  In this case, hourse, minutes, and
Packit Service 653591
   seconds are completely ignored.
Packit Service 653591
Packit Service 653591
   If $flags contains the words "before" or "after", $date must come
Packit Service 653591
   before or after $base.
Packit Service 653591
Packit Service 653591
   If $flags contains any other options, or if $width is passed in, the
Packit Service 653591
   test is treated in an approximate way.  A flag of "approx" forces this
Packit Service 653591
   behavior.
Packit Service 653591
Packit Service 653591
   If $width is not passed in in an approximate comparison, it defaults
Packit Service 653591
   to 1 in the last non-zero element.  Here, the default width is 1 day.
Packit Service 653591
   If the flag "half" is used, the width (default or passed in) is
Packit Service 653591
   halved.
Packit Service 653591
Packit Service 653591
   For example if $width is 1 day, add a multiple of $granularity to
Packit Service 653591
   $base to get as close to $date as possible.  If $date is within plus
Packit Service 653591
   or minus 1 day of this new base, the test is successful.  A flag of
Packit Service 653591
   "plus" or "minus" means that $date must be with plus 1 day or within
Packit Service 653591
   minus one day of this new base.  Flags of "before" or "after" work
Packit Service 653591
   as well.
Packit Service 653591
Packit Service 653591
@list=&Date_GranularityList($date,$N,$granularity)
Packit Service 653591
   Returns a list of $N dates AFTER $date which are created by adding
Packit Service 653591
   $granularity to $date $N times.  If $N<0, it returns $N dates BEFORE
Packit Service 653591
   $date (the list is in chronological order).
Packit Service 653591
Packit Service 653591
   Make it work in business mode as well which will return only working
Packit Service 653591
   days.  Example, every other friday and it can be told that if friday
Packit Service 653591
   falls on a holiday to return either thursday or the following monday
Packit Service 653591
   or leave it out.