The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

=head1 README for Date

This module is for packages relating to Dates.

=head1 ROLES

=head2 Date

The basic "Date" role defines operations applicable to points in time
which are of no specific calendar, and deal in abstract times without
enforcing a particular base unit or frame of reference.

However, pragmatically all Date modules should be able to convert to
and from either Perl epoch seconds or Unix epoch seconds.

=head2 Duration

The "Duration" role is similar, but for referring to either the
distance between two particular dates, or for calendars which such
intervals two dates can be reasonably said to be not related to the
date which they refer to, may be "floating" durations of some unit.
They may also refer to generic units which do not apply a uniform
length of time (by other measures) until they are applied to a
particular Date.

That is the plan - in order to be sure that the above roles are truly
abstracted from the calendars that they represent, a range of
calendars will first be implemented.  This will hopefully early on
include access to the excellent but bulky C<DateTime> framework.

=head1 ROLE IMPLEMENATIONS

=head2 Date::Gregorian

The "Date::Gregorian" module, based on the Perl 5 L<Class::Date>,
represents dates on the Gregorian calendar.  It parses ISO-8601 dates
"out of the box", and is very lightweight and pragmatic.

=head2 Duration::Gregorian

The "Date::Gregorian" module, based on the Perl 5 L<Class::Date::Rel>,
represents dates on the Gregorian calendar.  It parses ISO-8601
intervals "out of the box".

=head2 DateTime

(planned)

A subclass of Date::Gregorian that is a direct port of the DateTime
framework to Perl 6, probably initially using perl5embed.

=head2 DateTime::Duration

(planned)

A subclass of Duration::Gregorian that is where DateTime::Duration
lives.

=head2 Date::Chinese

(planned)

Dates on the Chinese calendar, implemented from first principles.  ie,
its basic units are lunar months etc C<:-)>.  It should closely
correspond to L<DateTime::Calendar::Chinese>.

=head2 Duration::Chinese

(planned)

Durations on the Chinese calendar.

=cut