The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# This file is auto-generated by the Perl DateTime Suite time zone
# code generator (0.08) This code generator comes with the
# DateTime::TimeZone module distribution in the tools/ directory

#
# Generated from /tmp/EMc64VHQnH/australasia.  Olson data version 2017b
#
# Do not edit this file directly.
#
package DateTime::TimeZone::Pacific::Tongatapu;

use strict;
use warnings;
use namespace::autoclean;

our $VERSION = '2.11';

use Class::Singleton 1.03;
use DateTime::TimeZone;
use DateTime::TimeZone::OlsonDB;

@DateTime::TimeZone::Pacific::Tongatapu::ISA = ( 'Class::Singleton', 'DateTime::TimeZone' );

my $spans =
[
    [
DateTime::TimeZone::NEG_INFINITY, #    utc_start
59958186040, #      utc_end 1900-12-31 11:40:40 (Mon)
DateTime::TimeZone::NEG_INFINITY, #  local_start
59958230400, #    local_end 1901-01-01 00:00:00 (Tue)
44360,
0,
'LMT',
    ],
    [
59958186040, #    utc_start 1900-12-31 11:40:40 (Mon)
61220490000, #      utc_end 1940-12-31 11:40:00 (Tue)
59958230440, #  local_start 1901-01-01 00:00:40 (Tue)
61220534400, #    local_end 1941-01-01 00:00:00 (Wed)
44400,
0,
'+1220',
    ],
    [
61220490000, #    utc_start 1940-12-31 11:40:00 (Tue)
63050785200, #      utc_end 1998-12-31 11:00:00 (Thu)
61220536800, #  local_start 1941-01-01 00:40:00 (Wed)
63050832000, #    local_end 1999-01-01 00:00:00 (Fri)
46800,
0,
'+13',
    ],
    [
63050785200, #    utc_start 1998-12-31 11:00:00 (Thu)
63074898000, #      utc_end 1999-10-06 13:00:00 (Wed)
63050832000, #  local_start 1999-01-01 00:00:00 (Fri)
63074944800, #    local_end 1999-10-07 02:00:00 (Thu)
46800,
0,
'+13',
    ],
    [
63074898000, #    utc_start 1999-10-06 13:00:00 (Wed)
63089067600, #      utc_end 2000-03-18 13:00:00 (Sat)
63074948400, #  local_start 1999-10-07 03:00:00 (Thu)
63089118000, #    local_end 2000-03-19 03:00:00 (Sun)
50400,
1,
'+14',
    ],
    [
63089067600, #    utc_start 2000-03-18 13:00:00 (Sat)
63109026000, #      utc_end 2000-11-04 13:00:00 (Sat)
63089114400, #  local_start 2000-03-19 02:00:00 (Sun)
63109072800, #    local_end 2000-11-05 02:00:00 (Sun)
46800,
0,
'+13',
    ],
    [
63109026000, #    utc_start 2000-11-04 13:00:00 (Sat)
63116280000, #      utc_end 2001-01-27 12:00:00 (Sat)
63109076400, #  local_start 2000-11-05 03:00:00 (Sun)
63116330400, #    local_end 2001-01-28 02:00:00 (Sun)
50400,
1,
'+14',
    ],
    [
63116280000, #    utc_start 2001-01-27 12:00:00 (Sat)
63140475600, #      utc_end 2001-11-03 13:00:00 (Sat)
63116326800, #  local_start 2001-01-28 01:00:00 (Sun)
63140522400, #    local_end 2001-11-04 02:00:00 (Sun)
46800,
0,
'+13',
    ],
    [
63140475600, #    utc_start 2001-11-03 13:00:00 (Sat)
63147729600, #      utc_end 2002-01-26 12:00:00 (Sat)
63140526000, #  local_start 2001-11-04 03:00:00 (Sun)
63147780000, #    local_end 2002-01-27 02:00:00 (Sun)
50400,
1,
'+14',
    ],
    [
63147729600, #    utc_start 2002-01-26 12:00:00 (Sat)
63614034000, #      utc_end 2016-11-05 13:00:00 (Sat)
63147776400, #  local_start 2002-01-27 01:00:00 (Sun)
63614080800, #    local_end 2016-11-06 02:00:00 (Sun)
46800,
0,
'+13',
    ],
    [
63614034000, #    utc_start 2016-11-05 13:00:00 (Sat)
63620082000, #      utc_end 2017-01-14 13:00:00 (Sat)
63614084400, #  local_start 2016-11-06 03:00:00 (Sun)
63620132400, #    local_end 2017-01-15 03:00:00 (Sun)
50400,
1,
'+14',
    ],
    [
63620082000, #    utc_start 2017-01-14 13:00:00 (Sat)
63645483600, #      utc_end 2017-11-04 13:00:00 (Sat)
63620128800, #  local_start 2017-01-15 02:00:00 (Sun)
63645530400, #    local_end 2017-11-05 02:00:00 (Sun)
46800,
0,
'+13',
    ],
    [
63645483600, #    utc_start 2017-11-04 13:00:00 (Sat)
63652136400, #      utc_end 2018-01-20 13:00:00 (Sat)
63645534000, #  local_start 2017-11-05 03:00:00 (Sun)
63652186800, #    local_end 2018-01-21 03:00:00 (Sun)
50400,
1,
'+14',
    ],
    [
63652136400, #    utc_start 2018-01-20 13:00:00 (Sat)
63676933200, #      utc_end 2018-11-03 13:00:00 (Sat)
63652183200, #  local_start 2018-01-21 02:00:00 (Sun)
63676980000, #    local_end 2018-11-04 02:00:00 (Sun)
46800,
0,
'+13',
    ],
    [
63676933200, #    utc_start 2018-11-03 13:00:00 (Sat)
63683586000, #      utc_end 2019-01-19 13:00:00 (Sat)
63676983600, #  local_start 2018-11-04 03:00:00 (Sun)
63683636400, #    local_end 2019-01-20 03:00:00 (Sun)
50400,
1,
'+14',
    ],
    [
63683586000, #    utc_start 2019-01-19 13:00:00 (Sat)
63708382800, #      utc_end 2019-11-02 13:00:00 (Sat)
63683632800, #  local_start 2019-01-20 02:00:00 (Sun)
63708429600, #    local_end 2019-11-03 02:00:00 (Sun)
46800,
0,
'+13',
    ],
    [
63708382800, #    utc_start 2019-11-02 13:00:00 (Sat)
63715035600, #      utc_end 2020-01-18 13:00:00 (Sat)
63708433200, #  local_start 2019-11-03 03:00:00 (Sun)
63715086000, #    local_end 2020-01-19 03:00:00 (Sun)
50400,
1,
'+14',
    ],
    [
63715035600, #    utc_start 2020-01-18 13:00:00 (Sat)
63739832400, #      utc_end 2020-10-31 13:00:00 (Sat)
63715082400, #  local_start 2020-01-19 02:00:00 (Sun)
63739879200, #    local_end 2020-11-01 02:00:00 (Sun)
46800,
0,
'+13',
    ],
    [
63739832400, #    utc_start 2020-10-31 13:00:00 (Sat)
63746485200, #      utc_end 2021-01-16 13:00:00 (Sat)
63739882800, #  local_start 2020-11-01 03:00:00 (Sun)
63746535600, #    local_end 2021-01-17 03:00:00 (Sun)
50400,
1,
'+14',
    ],
    [
63746485200, #    utc_start 2021-01-16 13:00:00 (Sat)
63771886800, #      utc_end 2021-11-06 13:00:00 (Sat)
63746532000, #  local_start 2021-01-17 02:00:00 (Sun)
63771933600, #    local_end 2021-11-07 02:00:00 (Sun)
46800,
0,
'+13',
    ],
    [
63771886800, #    utc_start 2021-11-06 13:00:00 (Sat)
63777934800, #      utc_end 2022-01-15 13:00:00 (Sat)
63771937200, #  local_start 2021-11-07 03:00:00 (Sun)
63777985200, #    local_end 2022-01-16 03:00:00 (Sun)
50400,
1,
'+14',
    ],
    [
63777934800, #    utc_start 2022-01-15 13:00:00 (Sat)
63803336400, #      utc_end 2022-11-05 13:00:00 (Sat)
63777981600, #  local_start 2022-01-16 02:00:00 (Sun)
63803383200, #    local_end 2022-11-06 02:00:00 (Sun)
46800,
0,
'+13',
    ],
    [
63803336400, #    utc_start 2022-11-05 13:00:00 (Sat)
63809384400, #      utc_end 2023-01-14 13:00:00 (Sat)
63803386800, #  local_start 2022-11-06 03:00:00 (Sun)
63809434800, #    local_end 2023-01-15 03:00:00 (Sun)
50400,
1,
'+14',
    ],
    [
63809384400, #    utc_start 2023-01-14 13:00:00 (Sat)
63834786000, #      utc_end 2023-11-04 13:00:00 (Sat)
63809431200, #  local_start 2023-01-15 02:00:00 (Sun)
63834832800, #    local_end 2023-11-05 02:00:00 (Sun)
46800,
0,
'+13',
    ],
    [
63834786000, #    utc_start 2023-11-04 13:00:00 (Sat)
63841438800, #      utc_end 2024-01-20 13:00:00 (Sat)
63834836400, #  local_start 2023-11-05 03:00:00 (Sun)
63841489200, #    local_end 2024-01-21 03:00:00 (Sun)
50400,
1,
'+14',
    ],
    [
63841438800, #    utc_start 2024-01-20 13:00:00 (Sat)
63866235600, #      utc_end 2024-11-02 13:00:00 (Sat)
63841485600, #  local_start 2024-01-21 02:00:00 (Sun)
63866282400, #    local_end 2024-11-03 02:00:00 (Sun)
46800,
0,
'+13',
    ],
    [
63866235600, #    utc_start 2024-11-02 13:00:00 (Sat)
63872888400, #      utc_end 2025-01-18 13:00:00 (Sat)
63866286000, #  local_start 2024-11-03 03:00:00 (Sun)
63872938800, #    local_end 2025-01-19 03:00:00 (Sun)
50400,
1,
'+14',
    ],
    [
63872888400, #    utc_start 2025-01-18 13:00:00 (Sat)
63897685200, #      utc_end 2025-11-01 13:00:00 (Sat)
63872935200, #  local_start 2025-01-19 02:00:00 (Sun)
63897732000, #    local_end 2025-11-02 02:00:00 (Sun)
46800,
0,
'+13',
    ],
    [
63897685200, #    utc_start 2025-11-01 13:00:00 (Sat)
63904338000, #      utc_end 2026-01-17 13:00:00 (Sat)
63897735600, #  local_start 2025-11-02 03:00:00 (Sun)
63904388400, #    local_end 2026-01-18 03:00:00 (Sun)
50400,
1,
'+14',
    ],
    [
63904338000, #    utc_start 2026-01-17 13:00:00 (Sat)
63929134800, #      utc_end 2026-10-31 13:00:00 (Sat)
63904384800, #  local_start 2026-01-18 02:00:00 (Sun)
63929181600, #    local_end 2026-11-01 02:00:00 (Sun)
46800,
0,
'+13',
    ],
    [
63929134800, #    utc_start 2026-10-31 13:00:00 (Sat)
63935787600, #      utc_end 2027-01-16 13:00:00 (Sat)
63929185200, #  local_start 2026-11-01 03:00:00 (Sun)
63935838000, #    local_end 2027-01-17 03:00:00 (Sun)
50400,
1,
'+14',
    ],
    [
63935787600, #    utc_start 2027-01-16 13:00:00 (Sat)
63961189200, #      utc_end 2027-11-06 13:00:00 (Sat)
63935834400, #  local_start 2027-01-17 02:00:00 (Sun)
63961236000, #    local_end 2027-11-07 02:00:00 (Sun)
46800,
0,
'+13',
    ],
    [
63961189200, #    utc_start 2027-11-06 13:00:00 (Sat)
63967237200, #      utc_end 2028-01-15 13:00:00 (Sat)
63961239600, #  local_start 2027-11-07 03:00:00 (Sun)
63967287600, #    local_end 2028-01-16 03:00:00 (Sun)
50400,
1,
'+14',
    ],
    [
63967237200, #    utc_start 2028-01-15 13:00:00 (Sat)
63992638800, #      utc_end 2028-11-04 13:00:00 (Sat)
63967284000, #  local_start 2028-01-16 02:00:00 (Sun)
63992685600, #    local_end 2028-11-05 02:00:00 (Sun)
46800,
0,
'+13',
    ],
];

sub olson_version {'2017b'}

sub has_dst_changes {16}

sub _max_year {2027}

sub _new_instance {
    return shift->_init( @_, spans => $spans );
}

sub _last_offset { 46800 }

my $last_observance = bless( {
  'format' => '+13/+14',
  'gmtoff' => '13:00',
  'local_start_datetime' => bless( {
    'formatter' => undef,
    'local_rd_days' => 729755,
    'local_rd_secs' => 0,
    'offset_modifier' => 0,
    'rd_nanosecs' => 0,
    'tz' => bless( {
      'name' => 'floating',
      'offset' => 0
    }, 'DateTime::TimeZone::Floating' ),
    'utc_rd_days' => 729755,
    'utc_rd_secs' => 0,
    'utc_year' => 2000
  }, 'DateTime' ),
  'offset_from_std' => 0,
  'offset_from_utc' => 46800,
  'until' => [],
  'utc_start_datetime' => bless( {
    'formatter' => undef,
    'local_rd_days' => 729754,
    'local_rd_secs' => 39600,
    'offset_modifier' => 0,
    'rd_nanosecs' => 0,
    'tz' => bless( {
      'name' => 'floating',
      'offset' => 0
    }, 'DateTime::TimeZone::Floating' ),
    'utc_rd_days' => 729754,
    'utc_rd_secs' => 39600,
    'utc_year' => 1999
  }, 'DateTime' )
}, 'DateTime::TimeZone::OlsonDB::Observance' )
;
sub _last_observance { $last_observance }

my $rules = [
  bless( {
    'at' => '2:00',
    'from' => '2016',
    'in' => 'Nov',
    'letter' => 'S',
    'name' => 'Tonga',
    'offset_from_std' => 3600,
    'on' => 'Sun>=1',
    'save' => '1:00',
    'to' => 'max'
  }, 'DateTime::TimeZone::OlsonDB::Rule' ),
  bless( {
    'at' => '3:00',
    'from' => '2017',
    'in' => 'Jan',
    'letter' => '',
    'name' => 'Tonga',
    'offset_from_std' => 0,
    'on' => 'Sun>=15',
    'save' => '0',
    'to' => 'max'
  }, 'DateTime::TimeZone::OlsonDB::Rule' )
]
;
sub _rules { $rules }


1;