NAME
    Time::Local::2074 - Extends 2038 barrier to 2074.

SYNOPSIS
      use Time::Local::2074 qw(:ALL);

      my @localtime = localtime(2**31);
      my $seconds   = timelocal(0,0,0,1,10,170);
      my $ux_time   = UNIX_TIMESTAMP('2073-07-04 12:34:56');
      my $date      = FROM_UNIXTIME(2**31);

      my $sql = qq(
             SELECT start_time
             FROM   projects
             WHERE  project_id = '1'
      );
      my $date_time = $dbh->selectrow_array($sql); # '2073-07-04 12:34:56'
      my $ux_time   = UNIX_TIMESTAMP($date_time);  # 3266411696

      my $date_time = FROM_UNIXTIME(2**31);
      my $sql  = qq(
             UPDATE projects
             SET    start_time = '$date_time'
             WHERE  project_id = '1'
      );

DESCRIPTION
    This module extends the 2038 boundary to 2074 by taking advantage of the
    fact that in mid-century, there are always the same number of days in a
    36-year period, which will have exactly 9 leap years.

PUBLIC METHODS
    * timelocal
        Extends Time::Local::timelocal barrier from Jan 1, 2038 to Jan 1,
        2074.

    * localtime
        Extends CORE::localtime barrier from Jan 18, 2038 to Jan 18, 2074.

    * timegm
        Extends Time::Local::timegm barrier from Jan 1, 2038 to Jan 1, 2074.

    * gmtime
        Extends Time::Local::gmtime barrier from Jan 18, 2038 to Jan 18,
        2074.

    * UNIX_TIMESTAMP
        Extends MySQL UNIX_TIMESTAMP() barrier from Jan 18, 2038 to Jan 18,
        2074.

    * FROM_UNIXTIME
        Extends MySQL FROM_UNIXTIME() barrier from Jan 18, 2038 to Jan 18,
        2074.

BUGS
    Subject to various limitations of localtime, gmtime, and Time::Local
    functions regarding time zones that are not always in sync with GMT or
    US daylight saving time.

TODO
      1) Trap Time::Local::timelocal die in an eval {}.
      2) Add support for timelocal_nocheck and timegm_nocheck.
      3) Add better testing for values this module can't handle, like 2074 
         and beyond.  Make sure the boundary conditions are right.
      4) Add tests for time zones other than Eastern.
      5) Verify that the UNIX_TIMESTAMP and FROM_UNIXTIME boundary conditions
         behave as they should.
      6) Clean up.  Lots of clean up.

CREDITS
    Thanks to Peter Kioko <ceph@techie.com> for helping to refine the idea.
    Thanks to Adam Foxson <afoxson@pobox.com> for quality assurance and for
    being the Human CPAN Reference Manual.

AUTHOR
    Bob O'Neill, <bobo@cpan.org>

COPYRIGHT AND LICENSE
    Copyright (C) 2003 Bob O'Neill All rights reserved.

    See COPYING for license

SEE ALSO
      L<perl>.
      L<Time::Local>.

