On Sat, 21 Jun 2003, Bruce Van Allen wrote:

> There's been quite a bit of talk about how to handle date and time for
> business & fiscal applications. I urge _not_ trying to create a
> comprehensive module.
>
> Instead, an extensible framework, within a DT::Business or DT::Fiscal
> namespace, could grow incrementally, under the discipline of avoiding
> the creeping redundancy starting to infect the DT project.

Yes!  I agree 110%.  There's way too much discussion in this thread of all
the possible possibilities, and not enough of "here's the one or two
things I have to deal with."  Let's worry about the latter for now.

As to creeping redundancy, I don't see any big problems with that _yet_,
but I am seeing a tendency on lots of people's parts here to want to
over-engineer the heck out of everything.

A good example was the recent discussion of custom locales, which got way
too complicated _before_ any code had even been released!  Working, useful
code first, then fancy ultra-powerful code.  I think the evolution of the
DateTime.pm module is a good example.  The first version did things _I_
thought were useful.  It's grown since then based on feedback from others
about the things they needed.


For now, I see two really important areas for business that should be
addressed.

1. A DT::Business::FiscalYear module, which lets you set an arbitrary date
as "the first of the year", and do calculations based on that.  This would
probably be a simple wrapper around DateTime.pm that overrode things like
day_of_year, quarter, etc.

2. A DT::Business::Calc module (bad name though) that implemented date
math in terms of a DT::Business::Calendar module that defines holidays and
such, so that adding 2 days skips weekend, holidays, etc.  This might also
require something that has been discussed before, but not implemented,
which is attached arbitrary extra info to objects in sets so that we can
ask if a day is a half or full work day, etc.

Implementing both of those, and making sure they work together, would
provide some great building blocks for additional functionality, and would
satisfy a lot of people.

By all means keep discussing other, more complicated or obscure problems,
but please don't do only that in favor of coding ;)


-dave

/*=======================
House Absolute Consulting
www.houseabsolute.com
=======================*/

Reply via email to