# Copyright (c) 2008-2023 Sullivan Beck. All rights reserved.
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.


=head1 NAME

Date::Manip::TZdata -- Internal module for working with the tzdata files


   use Date::Manip::TZdata;

   $tzd  = new Date::Manip::TZdata($dir);


This module is not intended for public use. It is used internally by
the scripts used to analyze the time zone database and generate the
modules for each time zone. The module is included in the distribution
solely for the sake of completeness. Currently, no support is offered
for this module, and it can (and may) change without notice.

This module consists of routines for working with the tzdata files.
These files are updated several times a year and are the basis for
time zone descriptions for most computer systems.


=over 4

=item B<new>

   use Date::Manip::TZdata;

   $tzd  = new Date::Manip::TZdata($dir);

This finds and reads in all the tzdata. If C<$dir> is passed in, it
is the directory where a tzdata directory is located. It defaults to
the current directory.



Some assumptions and limitations are assumed in the logic of this

When a time change occurs, the time may change backwards or forwards.
Time changes rules are listed on a per-year basis.  It is assumed that
time changes will not occur so close to the end or start of the year
as to cross the year boundary (in other words, the year will not
change as a result of the time change).  This is not accounted for,
and it is hoped that this situation will never occur.

Also, because this module is strictly limited to 4 digit positive
years (regardless of whether it is wall clock or universal time), and
because various parts of the module switch back and forth, valid times
for this module are from Jan 2, 0001 to Dec 30, 9999. This ensures
that conversions from wall clock to universal or vice versa will never
make dates occur in the year 0000 or 10000.


None known.


Please refer to the L<Date::Manip> man page for information on submitting
bug reports or questions to the author.

=head1 AUTHOR

Sullivan Beck (sbeck@cpan.org)