# This file is auto-generated by the Perl DateTime Suite time zone
# code generator (0.07) This code generator comes with the
# DateTime::TimeZone module distribution in the tools/ directory

#
# Generated from ../DateTime/data/Olson/2011n/africa.  Olson data version 2011n
#
# Do not edit this file directly.
#
package DateTime::TimeZone::Africa::Windhoek;
{
  $DateTime::TimeZone::Africa::Windhoek::VERSION = '1.42';
}

use strict;

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

@DateTime::TimeZone::Africa::Windhoek::ISA = ( 'Class::Singleton', 'DateTime::TimeZone' );

my $spans =
[
    [
DateTime::TimeZone::NEG_INFINITY,
59677512696,
DateTime::TimeZone::NEG_INFINITY,
59677516800,
4104,
0,
'LMT'
    ],
    [
59677512696,
60026394600,
59677518096,
60026400000,
5400,
0,
'SWAT'
    ],
    [
60026394600,
61274707200,
60026401800,
61274714400,
7200,
0,
'SAST'
    ],
    [
61274707200,
61290428400,
61274718000,
61290439200,
10800,
1,
'SAST'
    ],
    [
61290428400,
62773653600,
61290435600,
62773660800,
7200,
0,
'SAST'
    ],
    [
62773653600,
62901007200,
62773660800,
62901014400,
7200,
0,
'CAT'
    ],
    [
62901007200,
62914323600,
62901010800,
62914327200,
3600,
0,
'WAT'
    ],
    [
62914323600,
62932464000,
62914330800,
62932471200,
7200,
1,
'WAST'
    ],
    [
62932464000,
62945773200,
62932467600,
62945776800,
3600,
0,
'WAT'
    ],
    [
62945773200,
62964518400,
62945780400,
62964525600,
7200,
1,
'WAST'
    ],
    [
62964518400,
62977222800,
62964522000,
62977226400,
3600,
0,
'WAT'
    ],
    [
62977222800,
62995968000,
62977230000,
62995975200,
7200,
1,
'WAST'
    ],
    [
62995968000,
63009277200,
62995971600,
63009280800,
3600,
0,
'WAT'
    ],
    [
63009277200,
63027417600,
63009284400,
63027424800,
7200,
1,
'WAST'
    ],
    [
63027417600,
63040726800,
63027421200,
63040730400,
3600,
0,
'WAT'
    ],
    [
63040726800,
63058867200,
63040734000,
63058874400,
7200,
1,
'WAST'
    ],
    [
63058867200,
63072176400,
63058870800,
63072180000,
3600,
0,
'WAT'
    ],
    [
63072176400,
63090316800,
63072183600,
63090324000,
7200,
1,
'WAST'
    ],
    [
63090316800,
63103626000,
63090320400,
63103629600,
3600,
0,
'WAT'
    ],
    [
63103626000,
63121766400,
63103633200,
63121773600,
7200,
1,
'WAST'
    ],
    [
63121766400,
63135075600,
63121770000,
63135079200,
3600,
0,
'WAT'
    ],
    [
63135075600,
63153820800,
63135082800,
63153828000,
7200,
1,
'WAST'
    ],
    [
63153820800,
63166525200,
63153824400,
63166528800,
3600,
0,
'WAT'
    ],
    [
63166525200,
63185270400,
63166532400,
63185277600,
7200,
1,
'WAST'
    ],
    [
63185270400,
63198579600,
63185274000,
63198583200,
3600,
0,
'WAT'
    ],
    [
63198579600,
63216720000,
63198586800,
63216727200,
7200,
1,
'WAST'
    ],
    [
63216720000,
63230029200,
63216723600,
63230032800,
3600,
0,
'WAT'
    ],
    [
63230029200,
63248169600,
63230036400,
63248176800,
7200,
1,
'WAST'
    ],
    [
63248169600,
63261478800,
63248173200,
63261482400,
3600,
0,
'WAT'
    ],
    [
63261478800,
63279619200,
63261486000,
63279626400,
7200,
1,
'WAST'
    ],
    [
63279619200,
63292928400,
63279622800,
63292932000,
3600,
0,
'WAT'
    ],
    [
63292928400,
63311068800,
63292935600,
63311076000,
7200,
1,
'WAST'
    ],
    [
63311068800,
63324378000,
63311072400,
63324381600,
3600,
0,
'WAT'
    ],
    [
63324378000,
63343123200,
63324385200,
63343130400,
7200,
1,
'WAST'
    ],
    [
63343123200,
63356432400,
63343126800,
63356436000,
3600,
0,
'WAT'
    ],
    [
63356432400,
63374572800,
63356439600,
63374580000,
7200,
1,
'WAST'
    ],
    [
63374572800,
63387882000,
63374576400,
63387885600,
3600,
0,
'WAT'
    ],
    [
63387882000,
63406022400,
63387889200,
63406029600,
7200,
1,
'WAST'
    ],
    [
63406022400,
63419331600,
63406026000,
63419335200,
3600,
0,
'WAT'
    ],
    [
63419331600,
63437472000,
63419338800,
63437479200,
7200,
1,
'WAST'
    ],
    [
63437472000,
63450781200,
63437475600,
63450784800,
3600,
0,
'WAT'
    ],
    [
63450781200,
63468921600,
63450788400,
63468928800,
7200,
1,
'WAST'
    ],
    [
63468921600,
63482230800,
63468925200,
63482234400,
3600,
0,
'WAT'
    ],
    [
63482230800,
63500976000,
63482238000,
63500983200,
7200,
1,
'WAST'
    ],
    [
63500976000,
63513680400,
63500979600,
63513684000,
3600,
0,
'WAT'
    ],
    [
63513680400,
63532425600,
63513687600,
63532432800,
7200,
1,
'WAST'
    ],
    [
63532425600,
63545734800,
63532429200,
63545738400,
3600,
0,
'WAT'
    ],
    [
63545734800,
63563875200,
63545742000,
63563882400,
7200,
1,
'WAST'
    ],
    [
63563875200,
63577184400,
63563878800,
63577188000,
3600,
0,
'WAT'
    ],
    [
63577184400,
63595324800,
63577191600,
63595332000,
7200,
1,
'WAST'
    ],
    [
63595324800,
63608634000,
63595328400,
63608637600,
3600,
0,
'WAT'
    ],
    [
63608634000,
63626774400,
63608641200,
63626781600,
7200,
1,
'WAST'
    ],
    [
63626774400,
63640083600,
63626778000,
63640087200,
3600,
0,
'WAT'
    ],
    [
63640083600,
63658224000,
63640090800,
63658231200,
7200,
1,
'WAST'
    ],
    [
63658224000,
63671533200,
63658227600,
63671536800,
3600,
0,
'WAT'
    ],
    [
63671533200,
63690278400,
63671540400,
63690285600,
7200,
1,
'WAST'
    ],
    [
63690278400,
63702982800,
63690282000,
63702986400,
3600,
0,
'WAT'
    ],
    [
63702982800,
63721728000,
63702990000,
63721735200,
7200,
1,
'WAST'
    ],
    [
63721728000,
63735037200,
63721731600,
63735040800,
3600,
0,
'WAT'
    ],
    [
63735037200,
63753177600,
63735044400,
63753184800,
7200,
1,
'WAST'
    ],
    [
63753177600,
63766486800,
63753181200,
63766490400,
3600,
0,
'WAT'
    ],
    [
63766486800,
63784627200,
63766494000,
63784634400,
7200,
1,
'WAST'
    ],
    [
63784627200,
63797936400,
63784630800,
63797940000,
3600,
0,
'WAT'
    ],
];

sub olson_version { '2011n' }

sub has_dst_changes { 30 }

sub _max_year { 2021 }

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

sub _last_offset { 3600 }

my $last_observance = bless( {
  'format' => 'WA%sT',
  'gmtoff' => '1:00',
  'local_start_datetime' => bless( {
    'formatter' => undef,
    'local_rd_days' => 728020,
    'local_rd_secs' => 82800,
    'offset_modifier' => 0,
    'rd_nanosecs' => 0,
    'tz' => bless( {
      'name' => 'floating',
      'offset' => 0
    }, 'DateTime::TimeZone::Floating' ),
    'utc_rd_days' => 728020,
    'utc_rd_secs' => 82800,
    'utc_year' => 1995
  }, 'DateTime' ),
  'offset_from_std' => 0,
  'offset_from_utc' => 3600,
  'until' => [],
  'utc_start_datetime' => bless( {
    'formatter' => undef,
    'local_rd_days' => 728020,
    'local_rd_secs' => 79200,
    'offset_modifier' => 0,
    'rd_nanosecs' => 0,
    'tz' => bless( {
      'name' => 'floating',
      'offset' => 0
    }, 'DateTime::TimeZone::Floating' ),
    'utc_rd_days' => 728020,
    'utc_rd_secs' => 79200,
    'utc_year' => 1995
  }, 'DateTime' )
}, 'DateTime::TimeZone::OlsonDB::Observance' )
;
sub _last_observance { $last_observance }

my $rules = [
  bless( {
    'at' => '2:00',
    'from' => '1995',
    'in' => 'Apr',
    'letter' => '',
    'name' => 'Namibia',
    'offset_from_std' => 0,
    'on' => 'Sun>=1',
    'save' => '0',
    'to' => 'max',
    'type' => undef
  }, 'DateTime::TimeZone::OlsonDB::Rule' ),
  bless( {
    'at' => '2:00',
    'from' => '1994',
    'in' => 'Sep',
    'letter' => 'S',
    'name' => 'Namibia',
    'offset_from_std' => 3600,
    'on' => 'Sun>=1',
    'save' => '1:00',
    'to' => 'max',
    'type' => undef
  }, 'DateTime::TimeZone::OlsonDB::Rule' )
]
;
sub _rules { $rules }


1;

