"Fossies" - the Fresh Open Source Software Archive

Member "Date-Calc-6.4/lib/Date/Calendar/Profiles.pm" (7 Mar 2015, 141070 Bytes) of package /linux/privat/Date-Calc-6.4.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Perl source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "Profiles.pm" see the Fossies "Dox" file reference documentation and the latest Fossies "Diffs" side-by-side code changes report: 6.3_vs_6.4.

    1 
    2 ###############################################################################
    3 ##                                                                           ##
    4 ##    Copyright (c) 2000 - 2015 by Steffen Beyer.                            ##
    5 ##    All rights reserved.                                                   ##
    6 ##                                                                           ##
    7 ##    This package is free software; you can redistribute it                 ##
    8 ##    and/or modify it under the same terms as Perl itself.                  ##
    9 ##                                                                           ##
   10 ###############################################################################
   11 
   12 package Date::Calendar::Profiles;
   13 
   14 BEGIN { eval { require bytes; }; }
   15 use strict;
   16 use vars qw( @ISA @EXPORT @EXPORT_OK $VERSION $Profiles );
   17 
   18 require Exporter;
   19 
   20 @ISA = qw(Exporter);
   21 
   22 @EXPORT = qw();
   23 
   24 @EXPORT_OK = qw(
   25     $Profiles
   26     &Previous_Friday
   27     &Next_Monday
   28     &Next_Monday_or_Tuesday
   29     &Nearest_Workday
   30     &Sunday_to_Monday
   31     &Advent1
   32     &Advent2
   33     &Advent3
   34     &Advent4
   35     &Advent
   36 );
   37 
   38 $VERSION = '6.4';
   39 
   40 use Date::Calc qw(:all);
   41 use Carp::Clan qw(^Date::);
   42 
   43 ##########################################################################
   44 #                                                                        #
   45 #  Moving ("variable") holidays depending on the date of Easter Sunday:  #
   46 #                                                                        #
   47 #  Weiberfastnacht, Fettdonnerstag                         =  -52 days   #
   48 #  Carnival Monday / Rosenmontag / Veille du Mardi Gras    =  -48 days   #
   49 #  Mardi Gras / Karnevalsdienstag / Mardi Gras             =  -47 days   #
   50 #  Ash Wednesday / Aschermittwoch / Mercredi des Cendres   =  -46 days   #
   51 #  Palm Sunday / Palmsonntag / Dimanche des Rameaux        =   -7 days   #
   52 #  Maundy Thursday / Gruendonnerstag / Jeudi avant Paques  =   -3 days   #
   53 #  Good Friday / Karfreitag / Vendredi Saint               =   -2 days   #
   54 #  Easter Saturday / Ostersamstag / Samedi de Paques       =   -1 day    #
   55 #  Easter Sunday / Ostersonntag / Dimanche de Paques       =   +0 days   #
   56 #  Easter Monday / Ostermontag / Lundi de Paques           =   +1 day    #
   57 #  Prayer Day / Bettag / Jour de la Priere (Denmark)       =  +26 days   #
   58 #  Ascension of Christ / Christi Himmelfahrt / Ascension   =  +39 days   #
   59 #  Whitsunday / Pfingstsonntag / Dimanche de Pentecote     =  +49 days   #
   60 #  Whitmonday / Pfingstmontag / Lundi de Pentecote         =  +50 days   #
   61 #  Feast of Corpus Christi / Fronleichnam / Fete-Dieu      =  +60 days   #
   62 #                                                                        #
   63 ##########################################################################
   64 
   65 ###############################################
   66 #                                             #
   67 # Rules to enhance readability:               #
   68 #                                             #
   69 # 1) First level constants in single quotes,  #
   70 #    second level constants in double quotes. #
   71 # 2) Use leading zeros for fixed length.      #
   72 #                                             #
   73 ###############################################
   74 
   75 #####################
   76 # Global variables: #
   77 #####################
   78 
   79 $Profiles = { };
   80 
   81 ###############################
   82 # Global utility subroutines: #
   83 ###############################
   84 
   85 sub Previous_Friday
   86 {
   87     my($yy) = shift;
   88     my($mm) = shift;
   89     my($dd) = shift;
   90     my($dow);
   91 
   92 # If holiday falls on Saturday or Sunday, use previous Friday instead:
   93 
   94     $dow = Day_of_Week($yy,$mm,$dd);
   95     if    ($dow == 6) { ($yy,$mm,$dd) = Add_Delta_Days($yy,$mm,$dd,-1); }
   96     elsif ($dow == 7) { ($yy,$mm,$dd) = Add_Delta_Days($yy,$mm,$dd,-2); }
   97     return($yy,$mm,$dd,@_);
   98 }
   99 
  100 sub Next_Monday
  101 {
  102     my($yy) = shift;
  103     my($mm) = shift;
  104     my($dd) = shift;
  105     my($dow);
  106 
  107 # If holiday falls on Saturday, use following Monday instead;
  108 # if holiday falls on Sunday, use day thereafter (Monday) instead:
  109 
  110     $dow = Day_of_Week($yy,$mm,$dd);
  111     if    ($dow == 6) { ($yy,$mm,$dd) = Add_Delta_Days($yy,$mm,$dd,+2); }
  112     elsif ($dow == 7) { ($yy,$mm,$dd) = Add_Delta_Days($yy,$mm,$dd,+1); }
  113     return($yy,$mm,$dd,@_);
  114 }
  115 
  116 sub Next_Monday_or_Tuesday # For second holiday of two adjacent ones!
  117 {
  118     my($yy) = shift;
  119     my($mm) = shift;
  120     my($dd) = shift;
  121     my($dow);
  122 
  123 # If holiday falls on Saturday, use following Monday instead;
  124 # if holiday falls on Sunday or Monday, use next Tuesday instead
  125 # (because Monday is already taken by adjacent holiday on the day before):
  126 
  127     $dow = Day_of_Week($yy,$mm,$dd);
  128     if    ($dow == 6 or $dow == 7) { ($yy,$mm,$dd) = Add_Delta_Days($yy,$mm,$dd,+2); }
  129     elsif ($dow == 1)              { ($yy,$mm,$dd) = Add_Delta_Days($yy,$mm,$dd,+1); }
  130     return($yy,$mm,$dd,@_);
  131 }
  132 
  133 sub Nearest_Workday
  134 {
  135     my($yy) = shift;
  136     my($mm) = shift;
  137     my($dd) = shift;
  138     my($dow);
  139 
  140 # If holiday falls on Saturday, use day before (Friday) instead;
  141 # if holiday falls on Sunday, use day thereafter (Monday) instead:
  142 
  143     $dow = Day_of_Week($yy,$mm,$dd);
  144     if    ($dow == 6) { ($yy,$mm,$dd) = Add_Delta_Days($yy,$mm,$dd,-1); }
  145     elsif ($dow == 7) { ($yy,$mm,$dd) = Add_Delta_Days($yy,$mm,$dd,+1); }
  146     return($yy,$mm,$dd,@_);
  147 }
  148 
  149 sub Sunday_to_Monday
  150 {
  151     my($yy) = shift;
  152     my($mm) = shift;
  153     my($dd) = shift;
  154     my($dow);
  155 
  156 # If holiday falls on Sunday, use day thereafter (Monday) instead:
  157 
  158     $dow = Day_of_Week($yy,$mm,$dd);
  159     if ($dow == 7) { ($yy,$mm,$dd) = Add_Delta_Days($yy,$mm,$dd,+1); }
  160     return($yy,$mm,$dd,@_);
  161 }
  162 
  163 ######################################
  164 # Global utility callback functions: #
  165 ######################################
  166 
  167 sub Advent1
  168 {
  169     my($year,$label) = @_;
  170     return( Add_Delta_Days($year,12,25,
  171         -(Day_of_Week($year,12,25)+21)), '#' );
  172 }
  173 sub Advent2
  174 {
  175     my($year,$label) = @_;
  176     return( Add_Delta_Days($year,12,25,
  177         -(Day_of_Week($year,12,25)+14)), '#' );
  178 }
  179 sub Advent3
  180 {
  181     my($year,$label) = @_;
  182     return( Add_Delta_Days($year,12,25,
  183         -(Day_of_Week($year,12,25)+7)), '#' );
  184 }
  185 sub Advent4
  186 {
  187     my($year,$label) = @_;
  188     return( Add_Delta_Days($year,12,25,
  189         -Day_of_Week($year,12,25)), '#' );
  190 }
  191 
  192 sub Advent
  193 {
  194     my($year,$label) = @_;
  195     my($offset);
  196 
  197     $offset = (4 - substr($label,0,1)) * 7;
  198     return( Add_Delta_Days($year,12,25,
  199         -(Day_of_Week($year,12,25)+$offset)), '#' );
  200 }
  201 
  202 ###################
  203 # Local profiles: #
  204 ###################
  205 
  206 $Profiles->{'DE'} = # Deutschland
  207 {
  208     # For labeling only (defaults, may be overridden):
  209     "Dreikönigstag"             => "#06.01.",
  210     "Valentinstag"              => "#14.02.",
  211     "Weltfrauentag"             => "#08.03.",
  212     "Josephstag"                => "#19.03.",
  213     "Frühlingsanfang"           => "#20.03.",
  214     "Sommeranfang"              => "#21.06.",
  215     "Herbstanfang"              => "#23.09.",
  216     "Winteranfang"              => "#21.12.",
  217     "Beginn d. Sommerzeit"      => "#5/Sun/Mar",
  218     "Fettdonnerstag"            => "#-52",
  219     "Weiberfastnacht"           => "#-52",
  220     "Rosenmontag"               => "#-48",
  221     "Karnevalsdienstag"         => "#-47",
  222     "Aschermittwoch"            => "#-46",
  223     "Palmsonntag"               => "#-7",
  224     "Gründonnerstag"            => "#-3",
  225     "Karfreitag"                => "#-2",
  226     "Karsamstag"                => "#-1",
  227     "Muttertag"                 => "#2/Sun/May",
  228     "Vatertag"                  => "#2/Sun/Aug",
  229     "Peter und Paul"            => "#29.06.",
  230     "Fronleichnam"              => "#+60",
  231     "Mariä Himmelfahrt"         => "#15.08.",
  232     "Erntedankfest"             => "#1/Sun/Oct",
  233     "Ende d. Sommerzeit"        => "#5/Sun/Oct",
  234     "Reformationstag"           => "#31.10.",
  235     "Allerheiligen"             => "#01.11.",
  236     "Allerseelen"               => "#02.11.",
  237     "Martinstag"                => "#11.11.",
  238     "Mariä Empfängnis"          => "#08.12.",
  239     "Buß- und Bettag"           => \&DE_Buss_und_Bettag2,
  240     "Volkstrauertag"            => \&DE_Volkstrauertag,
  241     "Totensonntag"              => \&DE_Totensonntag,
  242     "1. Advent"                 => \&Advent,
  243     "2. Advent"                 => \&Advent,
  244     "3. Advent"                 => \&Advent,
  245     "4. Advent"                 => \&Advent,
  246     "Nikolaus"                  => "#06.12.",
  247     "Heiligabend"               => "#24.12.",
  248     "Sylvester"                 => "#31.12.",
  249     # Common legal holidays (in all federal states):
  250     "Neujahr"                   => "01.01.",
  251     "Karfreitag"                => "-2",
  252     "Ostersonntag"              => "+0",
  253     "Ostermontag"               => "+1",
  254     "Tag der Arbeit"            => "01.05.",
  255     "Christi Himmelfahrt"       => "+39",
  256     "Pfingstsonntag"            => "+49",
  257     "Pfingstmontag"             => "+50",
  258     "Tag der deutschen Einheit" => "03.10.",
  259     "1. Weihnachtsfeiertag"     => "25.12.",
  260     "2. Weihnachtsfeiertag"     => "26.12."
  261 };
  262 
  263 $Profiles->{'DE-BW'} = # Baden-Württemberg
  264 {
  265     %{$Profiles->{'DE'}},
  266     "Dreikönigstag"             => "06.01.",
  267     "Fronleichnam"              => "+60",
  268     "Allerheiligen"             => "01.11."
  269 };
  270 $Profiles->{'DE-BY'} = # Bayern
  271 {
  272     %{$Profiles->{'DE'}},
  273     "Dreikönigstag"             => "06.01.",
  274     "Fronleichnam"              => "+60",
  275     "Mariä Himmelfahrt"         => "15.08.",
  276     "Allerheiligen"             => "01.11."
  277 };
  278 $Profiles->{'DE-BE'} = # Berlin
  279 {
  280     %{$Profiles->{'DE'}}
  281 };
  282 $Profiles->{'DE-BB'} = # Brandenburg
  283 {
  284     %{$Profiles->{'DE'}},
  285     "Reformationstag"           => "31.10."
  286 };
  287 $Profiles->{'DE-HB'} = # Bremen
  288 {
  289     %{$Profiles->{'DE'}}
  290 };
  291 $Profiles->{'DE-HH'} = # Hamburg
  292 {
  293     %{$Profiles->{'DE'}}
  294 };
  295 $Profiles->{'DE-HE'} = # Hessen
  296 {
  297     %{$Profiles->{'DE'}},
  298     "Fronleichnam"              => "+60"
  299 };
  300 $Profiles->{'DE-MV'} = # Mecklenburg-Vorpommern
  301 {
  302     %{$Profiles->{'DE'}},
  303     "Reformationstag"           => "31.10."
  304 };
  305 $Profiles->{'DE-NI'} = # Niedersachsen
  306 {
  307     %{$Profiles->{'DE'}}
  308 };
  309 $Profiles->{'DE-NW'} = # Nordrhein-Westfalen
  310 {
  311     %{$Profiles->{'DE'}},
  312     "Fronleichnam"              => "+60",
  313     "Allerheiligen"             => "01.11."
  314 };
  315 $Profiles->{'DE-RP'} = # Rheinland-Pfalz
  316 {
  317     %{$Profiles->{'DE'}},
  318     "Fronleichnam"              => "+60",
  319     "Allerheiligen"             => "01.11."
  320 };
  321 $Profiles->{'DE-SL'} = # Saarland
  322 {
  323     %{$Profiles->{'DE'}},
  324     "Fronleichnam"              => "+60",
  325     "Mariä Himmelfahrt"         => "15.08.",
  326     "Allerheiligen"             => "01.11."
  327 };
  328 $Profiles->{'DE-SN'} = # Sachsen
  329 {
  330     %{$Profiles->{'DE'}},
  331     "Reformationstag"           => "31.10.",
  332     "Buß- und Bettag"           => \&DE_Buss_und_Bettag
  333 };
  334 $Profiles->{'DE-ST'} = # Sachsen-Anhalt
  335 {
  336     %{$Profiles->{'DE'}},
  337     "Dreikönigstag"             => "06.01.",
  338     "Reformationstag"           => "31.10."
  339 };
  340 $Profiles->{'DE-SH'} = # Schleswig-Holstein
  341 {
  342     %{$Profiles->{'DE'}}
  343 };
  344 $Profiles->{'DE-TH'} = # Thüringen
  345 {
  346     %{$Profiles->{'DE'}},
  347     "Reformationstag"           => "31.10."
  348 };
  349 
  350 # Alternative:
  351 # Buss- und Bettag = 1. Advent - 11 Tage
  352 #        1. Advent = 4. Advent - 21 Tage (3 Wochen)
  353 #        4. Advent = letzter Sonntag vor dem 25.12.
  354 # (Beide Alternativen sind auf dem Definitionsbereich
  355 # [1583..2299] aequivalent!)
  356 #sub DE_Buss_und_Bettag
  357 #{
  358 #    my($year,$label) = @_;
  359 #    return( Add_Delta_Days($year,12,25,
  360 #        -(Day_of_Week($year,12,25)+32)) );
  361 #}
  362 
  363 sub DE_Buss_und_Bettag # Dritter Werktags-Mittwoch im November
  364 {
  365     my($year,$label) = @_;
  366     if (Day_of_Week($year,11,1) == 3)
  367         { return( Nth_Weekday_of_Month_Year($year,11,3,4) ); }
  368     else
  369         { return( Nth_Weekday_of_Month_Year($year,11,3,3) ); }
  370 }
  371 sub DE_Buss_und_Bettag2
  372 {
  373     return( &DE_Buss_und_Bettag(@_), '#' );
  374 }
  375 sub DE_Volkstrauertag
  376 {
  377     my($year,$label) = @_;
  378     return( Add_Delta_Days($year,12,25,
  379         -(Day_of_Week($year,12,25)+35)), '#' );
  380 }
  381 sub DE_Totensonntag
  382 {
  383     my($year,$label) = @_;
  384     return( Add_Delta_Days($year,12,25,
  385         -(Day_of_Week($year,12,25)+28)), '#' );
  386 }
  387 
  388 # Thanks to:
  389 # David Cassell <cassell@mercury.cor.epa.gov>
  390 # Larry Rosler <lr@hpl.hp.com>
  391 # Anthony Argyriou <anthony@alphageo.com>
  392 # Philip Newton <pne@writeme.com>
  393 # Joe Rice <riceja@water-melon.net>
  394 # Sridhar Gopal <sridhar.gopal@bankofamerica.com>
  395 
  396 $Profiles->{'US'} = # United States of America
  397 {
  398     # For labeling only (defaults, may be overridden):
  399     "Valentine's Day"               => "#Feb/14",
  400     "Maundy Thursday"               => "#-3",
  401     "Good Friday"                   => "#-2",
  402     "Election Day"                  => \&US_Election,
  403     # Common legal holidays (in all federal states):
  404     "New Year's Day"                => \&US_New_Year,
  405     "Martin Luther King's Birthday" => "3/Mon/Jan",
  406     "Civil Rights Day"              => "#3/Mon/Jan", # Thanks to Michael G. Schwern <mschwern@cpan.org>
  407     "Human Rights Day"              => "#3/Mon/Jan", # and http://en.wikipedia.org/wiki/Martin_Luther_King_Day
  408     "President's Day"               => "3/Mon/Feb",
  409     "Washington's Birthday"         => "#3/Mon/Feb", # Thanks to Michael G. Schwern <mschwern@cpan.org>
  410     "Memorial Day"                  => "5/Mon/May",
  411     "Independence Day"              => \&US_Independence,
  412     "Labor Day"                     => "1/Mon/Sep",
  413     "Columbus Day"                  => "2/Mon/Oct",
  414     "Halloween"                     => "#Oct/31",
  415     "All Saints Day"                => "#Nov/1",
  416     "All Souls Day"                 => "#Nov/2",
  417     "Veterans' Day"                 => \&US_Veteran,
  418     "Thanksgiving Day"              => "4/Thu/Nov",
  419     "Christmas Day"                 => \&US_Christmas,
  420     # Federal observances (thanks to http://en.wikipedia.org/wiki/US_holidays):
  421     "Inauguration Day"              => "#Jan/20",
  422     "Super Bowl Sunday"             => "#1/Sun/Feb",
  423     "Groundhog Day"                 => "#Feb/2",
  424     "St. Patrick's Day"             => "#Mar/17",
  425     "Earth Day"                     => "#Apr/22",
  426     "Cinco de Mayo"                 => "#May/5",
  427     "Mother's Day"                  => "#2/Sun/May",
  428     "Father's Day"                  => "#3/Sun/Jun",
  429     "Pearl Harbor Remembrance Day"  => "#Dec/7",
  430     "Winter Solstice"               => "#Dec/21",
  431     "Christmas Eve"                 => "#Dec/24",
  432     "New Year's Eve"                => "#Dec/31"
  433 };
  434 
  435 sub US_New_Year # First of January
  436 {
  437     my($year,$label) = @_;
  438     return( &Next_Monday($year,1,1) );
  439 }
  440 sub US_Independence # Fourth of July
  441 {
  442     my($year,$label) = @_;
  443     return( &Nearest_Workday($year,7,4) );
  444 }
  445 sub US_Labor # First Monday after the first Sunday in September
  446 {
  447     my($year,$label) = @_;
  448     return( Add_Delta_Days(
  449         Nth_Weekday_of_Month_Year($year,9,7,1), +1) );
  450 }
  451 sub US_Election # First Tuesday after the first Monday in November
  452 {
  453     my($year,$label) = @_;
  454     return( Add_Delta_Days(
  455         Nth_Weekday_of_Month_Year($year,11,1,1), +1), '#' );
  456 }
  457 sub US_Veteran # 11th of November
  458 {
  459     my($year,$label) = @_;
  460     return( &Nearest_Workday($year,11,11) );
  461 }
  462 sub US_Christmas # 25th of December
  463 {
  464     my($year,$label) = @_;
  465     return( &Next_Monday($year,12,25) );
  466 }
  467 
  468 $Profiles->{'US-AK'} = # Alaska
  469 {
  470     %{$Profiles->{'US'}}
  471 };
  472 $Profiles->{'US-AL'} = # Alabama
  473 {
  474     %{$Profiles->{'US'}}
  475 };
  476 $Profiles->{'US-AR'} = # Arkansas
  477 {
  478     %{$Profiles->{'US'}}
  479 };
  480 $Profiles->{'US-AS'} = # American Samoa
  481 {
  482     %{$Profiles->{'US'}}
  483 };
  484 $Profiles->{'US-AZ'} = # Arizona
  485 {
  486     %{$Profiles->{'US'}}
  487 };
  488 $Profiles->{'US-CA'} = # California
  489 {
  490     %{$Profiles->{'US'}}
  491 };
  492 $Profiles->{'US-CO'} = # Colorado
  493 {
  494     %{$Profiles->{'US'}}
  495 };
  496 $Profiles->{'US-CT'} = # Connecticut
  497 {
  498     %{$Profiles->{'US'}}
  499 };
  500 $Profiles->{'US-DC'} = # District of Columbia
  501 {
  502     %{$Profiles->{'US'}}
  503 };
  504 $Profiles->{'US-DE'} = # Delaware
  505 {
  506     %{$Profiles->{'US'}}
  507 };
  508 $Profiles->{'US-FL'} = # Florida
  509 {
  510     %{$Profiles->{'US'}}
  511 };
  512 $Profiles->{'US-FM'} = # Federated States of Micronesia
  513 {
  514     %{$Profiles->{'US'}}
  515 };
  516 $Profiles->{'US-GA'} = # Georgia
  517 {
  518     %{$Profiles->{'US'}}
  519 };
  520 $Profiles->{'US-GU'} = # Guam
  521 {
  522     %{$Profiles->{'US'}}
  523 };
  524 $Profiles->{'US-HI'} = # Hawaii
  525 {
  526     %{$Profiles->{'US'}}
  527 };
  528 $Profiles->{'US-IA'} = # Iowa
  529 {
  530     %{$Profiles->{'US'}}
  531 };
  532 $Profiles->{'US-ID'} = # Idaho
  533 {
  534     %{$Profiles->{'US'}}
  535 };
  536 $Profiles->{'US-IL'} = # Illinois
  537 {
  538     %{$Profiles->{'US'}}
  539 };
  540 $Profiles->{'US-IN'} = # Indiana
  541 {
  542     %{$Profiles->{'US'}}
  543 };
  544 $Profiles->{'US-KS'} = # Kansas
  545 {
  546     %{$Profiles->{'US'}}
  547 };
  548 $Profiles->{'US-KY'} = # Kentucky
  549 {
  550     %{$Profiles->{'US'}}
  551 };
  552 $Profiles->{'US-LA'} = # Louisiana
  553 {
  554     %{$Profiles->{'US'}}
  555 };
  556 $Profiles->{'US-MA'} = # Massachusetts
  557 {
  558     %{$Profiles->{'US'}}
  559 };
  560 $Profiles->{'US-MD'} = # Maryland
  561 {
  562     %{$Profiles->{'US'}}
  563 };
  564 $Profiles->{'US-ME'} = # Maine
  565 {
  566     %{$Profiles->{'US'}}
  567 };
  568 $Profiles->{'US-MH'} = # Marshall Islands
  569 {
  570     %{$Profiles->{'US'}}
  571 };
  572 $Profiles->{'US-MI'} = # Michigan
  573 {
  574     %{$Profiles->{'US'}}
  575 };
  576 $Profiles->{'US-MN'} = # Minnesota
  577 {
  578     %{$Profiles->{'US'}}
  579 };
  580 $Profiles->{'US-MO'} = # Missouri
  581 {
  582     %{$Profiles->{'US'}}
  583 };
  584 $Profiles->{'US-MP'} = # Northern Mariana Islands
  585 {
  586     %{$Profiles->{'US'}}
  587 };
  588 $Profiles->{'US-MS'} = # Mississippi
  589 {
  590     %{$Profiles->{'US'}}
  591 };
  592 $Profiles->{'US-MT'} = # Montana
  593 {
  594     %{$Profiles->{'US'}}
  595 };
  596 $Profiles->{'US-NC'} = # North Carolina
  597 {
  598     %{$Profiles->{'US'}}
  599 };
  600 $Profiles->{'US-ND'} = # North Dakota
  601 {
  602     %{$Profiles->{'US'}}
  603 };
  604 $Profiles->{'US-NE'} = # Nebraska
  605 {
  606     %{$Profiles->{'US'}}
  607 };
  608 $Profiles->{'US-NH'} = # New Hampshire
  609 {
  610     %{$Profiles->{'US'}}
  611 };
  612 $Profiles->{'US-NJ'} = # New Jersey
  613 {
  614     %{$Profiles->{'US'}}
  615 };
  616 $Profiles->{'US-NM'} = # New Mexico
  617 {
  618     %{$Profiles->{'US'}}
  619 };
  620 $Profiles->{'US-NV'} = # Nevada
  621 {
  622     %{$Profiles->{'US'}}
  623 };
  624 $Profiles->{'US-NY'} = # New York
  625 {
  626     %{$Profiles->{'US'}}
  627 };
  628 $Profiles->{'US-OH'} = # Ohio
  629 {
  630     %{$Profiles->{'US'}}
  631 };
  632 $Profiles->{'US-OK'} = # Oklahoma
  633 {
  634     %{$Profiles->{'US'}}
  635 };
  636 $Profiles->{'US-OR'} = # Oregon
  637 {
  638     %{$Profiles->{'US'}}
  639 };
  640 $Profiles->{'US-PA'} = # Pennsylvania
  641 {
  642     %{$Profiles->{'US'}}
  643 };
  644 $Profiles->{'US-PR'} = # Puerto Rico
  645 {
  646     %{$Profiles->{'US'}}
  647 };
  648 $Profiles->{'US-PW'} = # Palau
  649 {
  650     %{$Profiles->{'US'}}
  651 };
  652 $Profiles->{'US-RI'} = # Rhode Island
  653 {
  654     %{$Profiles->{'US'}}
  655 };
  656 $Profiles->{'US-SC'} = # South Carolina
  657 {
  658     %{$Profiles->{'US'}}
  659 };
  660 $Profiles->{'US-SD'} = # South Dakota
  661 {
  662     %{$Profiles->{'US'}}
  663 };
  664 $Profiles->{'US-TN'} = # Tennessee
  665 {
  666     %{$Profiles->{'US'}}
  667 };
  668 $Profiles->{'US-TX'} = # Texas
  669 {
  670     %{$Profiles->{'US'}}
  671 };
  672 $Profiles->{'US-UT'} = # Utah
  673 {
  674     %{$Profiles->{'US'}}
  675 };
  676 $Profiles->{'US-VA'} = # Virginia
  677 {
  678     %{$Profiles->{'US'}}
  679 };
  680 $Profiles->{'US-VI'} = # Virgin Islands
  681 {
  682     %{$Profiles->{'US'}}
  683 };
  684 $Profiles->{'US-VT'} = # Vermont
  685 {
  686     %{$Profiles->{'US'}}
  687 };
  688 $Profiles->{'US-WA'} = # Washington
  689 {
  690     %{$Profiles->{'US'}}
  691 };
  692 $Profiles->{'US-WI'} = # Wisconsin
  693 {
  694     %{$Profiles->{'US'}}
  695 };
  696 $Profiles->{'US-WV'} = # West Virginia
  697 {
  698     %{$Profiles->{'US'}}
  699 };
  700 $Profiles->{'US-WY'} = # Wyoming
  701 {
  702     %{$Profiles->{'US'}}
  703 };
  704 
  705 # Thanks to:
  706 # M Lyons <lyonsm@bob.globalmediacorp.com>
  707 # Larry Rosler <lr@hpl.hp.com>
  708 # Geoff Baskwill <glb@nortel.ca>
  709 # Simon Perreault <nomis80@linuxquebec.com>
  710 
  711 $Profiles->{'CA'} = # Canada
  712 {
  713     "New Year's Day"       => "Jan/01",
  714     "Good Friday"          => "-2",
  715     "Labour Day"           => "1/Mon/Sep",
  716     "Christmas Day"        => "Dec/25"
  717 };
  718 
  719 sub CA_QC_Dollard # First Monday before May 25
  720 {
  721     my($year,$label) = @_;
  722     my($dow) = Day_of_Week($year, 5, 25);
  723     return( Add_Delta_Days($year, 5, 25, 1-$dow) );
  724 }
  725 
  726 $Profiles->{'CA-AB'} = # Alberta
  727 {
  728     %{$Profiles->{'CA'}},
  729     "Family Day"           => "3/Mon/Feb",
  730     "Victoria Day"         => "May/22",
  731     "Canada Day"           => "Jul/01",
  732     "Thanksgiving Day"     => "2/Mon/Oct",
  733     "Remembrance Day"      => "Nov/11"
  734 };
  735 $Profiles->{'CA-BC'} = # British Columbia
  736 {
  737     %{$Profiles->{'CA'}},
  738     "Victoria Day"         => "May/22",
  739     "Canada Day"           => "Jul/01",
  740     "British Columbia Day" => "1/Mon/Aug",
  741     "Thanksgiving Day"     => "2/Mon/Oct",
  742     "Remembrance Day"      => "Nov/11"
  743 };
  744 $Profiles->{'CA-MB'} = # Manitoba
  745 {
  746     %{$Profiles->{'CA'}},
  747     "Victoria Day"         => "May/22",
  748     "Canada Day"           => "Jul/01",
  749     "Thanksgiving Day"     => "2/Mon/Oct"
  750 };
  751 $Profiles->{'CA-NB'} = # New Brunswick
  752 {
  753     %{$Profiles->{'CA'}},
  754     "Canada Day"           => "Jul/01",
  755     "New Brunswick Day"    => "1/Mon/Aug"
  756 };
  757 $Profiles->{'CA-NF'} = # Newfoundland
  758 {
  759     %{$Profiles->{'CA'}},
  760     "Memorial Day"         => "Jul/01"
  761 };
  762 $Profiles->{'CA-NS'} = # Nova Scotia
  763 {
  764     %{$Profiles->{'CA'}},
  765     "Canada Day"           => "Jul/01"
  766 };
  767 $Profiles->{'CA-NT'} = # Northwest Territories and Nunavut
  768 {
  769     %{$Profiles->{'CA'}},
  770     "Victoria Day"         => "May/22",
  771     "Canada Day"           => "Jul/01",
  772     "Thanksgiving Day"     => "2/Mon/Oct",
  773     "Remembrance Day"      => "Nov/11"
  774 };
  775 $Profiles->{'CA-ON'} = # Ontario
  776 {
  777     %{$Profiles->{'CA'}},
  778     "Victoria Day"         => "May/22",
  779     "Canada Day"           => "Jul/01",
  780     "Family Day"           => "3/Mon/Feb", # Thanks to
  781     "Civic Holiday"        => "1/Mon/Aug", # Iain Dwyer <dermanus@gmail.com>
  782     "Thanksgiving Day"     => "2/Mon/Oct",
  783     "Boxing Day"           => "Dec/26"
  784 };
  785 $Profiles->{'CA-PE'} = # Prince Edward Island
  786 {
  787     %{$Profiles->{'CA'}},
  788     "Canada Day"           => "Jul/01"
  789 };
  790 $Profiles->{'CA-QC'} = # Québec
  791 {
  792     "Jour de l'an"         => "Jan/01",
  793     "Vendredi Saint"       => "-2",
  794     "Pâques"               => "+0",
  795     "Lundi de Pâques"      => "+1",
  796     "Fête de Dollard"      => \&CA_QC_Dollard,
  797     "Fête du Québec"       => "Jun/24",
  798     "Fête du Canada"       => "Jul/01",
  799     "Fête du Travail"      => "1/Mon/Sep",
  800     "Action de Grâce"      => "2/Mon/Oct",
  801     "Noël"                 => "Dec/25"
  802 };
  803 $Profiles->{'CA-SK'} = # Saskatchewan
  804 {
  805     %{$Profiles->{'CA'}},
  806     "Victoria Day"         => "May/22",
  807     "Canada Day"           => "Jul/01",
  808     "Saskatchewan Day"     => "1/Mon/Aug",
  809     "Thanksgiving Day"     => "2/Mon/Oct",
  810     "Remembrance Day"      => "Nov/11"
  811 };
  812 $Profiles->{'CA-YK'} = # Yukon Territory
  813 {
  814     %{$Profiles->{'CA'}},
  815     "Victoria Day"         => "May/22",
  816     "Canada Day"           => "Jul/01",
  817     "Discovery Day"        => "3/Mon/Aug",
  818     "Thanksgiving Day"     => "2/Mon/Oct",
  819     "Remembrance Day"      => "Nov/11"
  820 };
  821 
  822 # Thanks to:
  823 # Nora Elia Castillo <nec@leia.sunmexico.Sun.COM>
  824 
  825 $Profiles->{'MX'} = # Mexico
  826 {
  827     "Año Nuevo"                    => "01-01",
  828     "Día de la Constitución"       => "05-02",
  829     "Natalicio de Benito Juarez"   => "21-03",
  830     "Día del Trabajo"              => "01-05",
  831     "Día de la Independencia"      => "16-09",
  832     "Revolución Mexicana"          => "20-11",
  833     "Navidad"                      => "25-12"
  834 };
  835 
  836 # Thanks to:
  837 # Slawek Szmyd <slawek@msstudio.com.pl>
  838 # Marcin Wlazlowski <marcin@msstudio.com.pl>
  839 
  840 $Profiles->{'PL'} = # Polska
  841 {
  842     "Nowy Rok"                             => "01.01.",
  843     "Trzech Kroli"                         => "#06.01.",
  844     "Dzien Babci"                          => "#21.01.",
  845     "Dzien Dziadka"                        => "#22.01.",
  846     "Walentynki"                           => "#14.02.",
  847     "Dzien Kobiet"                         => "#08.03.",
  848 
  849     "Tlusty Czwartek"                      => "#-52",
  850     "Ostatki"                              => "#-47",
  851     "Sroda Popielcowa"                     => "#-46",
  852     "Niedziela Palmowa"                    => "#-7",
  853     "Wielkanoc"                            => "+0",
  854     "Poniedzialek Wielkanocny"             => "+1",
  855     "Zielone Swiatki"                      => "#+49",
  856     "Boze Cialo"                           => "+60",
  857 
  858     "Prima Aprilis"                        => "#01.04.",
  859     "Swieto Pracy"                         => "01.05.",
  860     "Swieto Narodowe 3 Maja"               => "03.05.",
  861     "Dzien Matki"                          => "#26.05.",
  862     "Dzien Dziecka"                        => "#01.06.",
  863     "Dzien Ojca"                           => "#23.06.",
  864     "Wniebowziecie NMP"                    => "15.08.",
  865     "Dzien Nauczyciela"                    => "#14.10.",
  866     "Halloween"                            => "#Oct/31",
  867     "Wszystkich Swietych"                  => "01.11.",
  868     "Dzien Zaduszny"                       => "#02.11",
  869     "Narodowe Swieto Niepodleglosci"       => "11.11.",
  870     "Andrzejki"                            => "#30.11.",
  871     "Mikolajki"                            => "#06.12.",
  872     "Wigilia"                              => "#24.12.",
  873     "Boze Narodzenie pierwszy dzien Swiat" => "25.12.",
  874     "Boze Narodzenie drugi dzien Swiat"    => "26.12.",
  875     "Sylwester"                            => "#31.12."
  876 };
  877 
  878 $Profiles->{'PL-SW'} = # kalendarz z wieksza iloscia Swiat
  879 {
  880     %{$Profiles->{'PL'}},
  881     "Wielki Czwartek"                      => "#-3",
  882     "Wielki Piatek"                        => "#-2",
  883     "Poczatek Adwentu"                     => \&Advent1,
  884     "Swieto Dziekczynienia"                => "#4/Thu/Nov"
  885 };
  886 
  887 ## ISO-Latin-2:
  888 #
  889 ## Thanks to:
  890 ## S³awek Szmyd <slawek@msstudio.com.pl>
  891 ## Marcin Wlaz³owski <marcin@msstudio.com.pl>
  892 #
  893 #$Profiles->{'PL'} = # Polska
  894 #{
  895 #    "Nowy Rok"                             => "01.01.",
  896 #    "Trzech Króli"                         => "#06.01.",
  897 #    "Dzieñ Babci"                          => "#21.01.",
  898 #    "Dzieñ Dziadka"                        => "#22.01.",
  899 #    "Walentynki"                           => "#14.02.",
  900 #    "Dzieñ Kobiet"                         => "#08.03.",
  901 #
  902 #    "T³usty Czwartek"                      => "#-52",
  903 #    "Ostatki"                              => "#-47",
  904 #    "¦roda Polpielcowa"                    => "#-46",
  905 #    "Niedziela Palmowa"                    => "#-7",
  906 #    "Wielkanoc"                            => "+0",
  907 #    "Poniedzia³ek Wielkanocny"             => "+1",
  908 #    "Zielone ¦wi±tki"                      => "#+49",
  909 #    "Bo¿e Cia³o"                           => "+60",
  910 #
  911 #    "Prima Aprilis"                        => "#01.04.",
  912 #    "¦wiêto Pracy"                         => "01.05.",
  913 #    "¦wiêto Narodowe 3 Maja"               => "03.05.",
  914 #    "Dzieñ Matki"                          => "#26.05.",
  915 #    "Dzieñ Dziecka"                        => "#01.06.",
  916 #    "Dzieñ Ojca"                           => "#23.06.",
  917 #    "Wniebowziêcie NMP"                    => "15.08.",
  918 #    "Dzieñ Nauczyciela"                    => "#14.10.",
  919 #    "Halloween"                            => "#Oct/31",
  920 #    "Wszystkich ¦wiêtych"                  => "01.11.",
  921 #    "Dzieñ Zaduszny"                       => "#02.11",
  922 #    "Narodowe ¦wiêto Niepodleg³o¶ci"       => "11.11.",
  923 #    "Andrzejki"                            => "#30.11.",
  924 #    "Miko³ajki"                            => "#06.12.",
  925 #    "Wigilia"                              => "#24.12.",
  926 #    "Bo¿e Narodzenie pierwszy dzieñ ¦wi±t" => "25.12.",
  927 #    "Bo¿e Narodzenie drugi dzieñ ¦wi±t"    => "26.12.",
  928 #    "Sylwester"                            => "#31.12."
  929 #};
  930 #
  931 #$Profiles->{'PL-SW'} = # kalendarz z wieksza iloscia Swiat
  932 #{
  933 #    %{$Profiles->{'PL'}},
  934 #    "Wielki Czwartek"                      => "#-3",
  935 #    "Wielki Pi±tek"                        => "#-2",
  936 #    "Pocz±tek Adwentu"                     => \&Advent1,
  937 #    "¦wiêto Dziêkczynienia"                => "#4/Thu/Nov"
  938 #};
  939 
  940 $Profiles->{'AT'} = # Österreich
  941 {
  942     "Neujahr"                   => "01.01.",
  943     "Dreikönigstag"             => "06.01.",
  944     "Karfreitag"                => "#-2", # regional unterschiedlich
  945     "Ostersonntag"              => "+0",
  946     "Ostermontag"               => "+1",
  947     "Staatsfeiertag"            => "01.05.",
  948     "Christi Himmelfahrt"       => "+39",
  949     "Pfingstsonntag"            => "+49",
  950     "Pfingstmontag"             => "+50",
  951     "Fronleichnam"              => "+60",
  952     "Mariä Himmelfahrt"         => "15.08.",
  953     "Nationalfeiertag"          => "26.10.",
  954     "Allerheiligen"             => "01.11.",
  955     "Mariä Empfängnis"          => "08.12.",
  956     "Christtag"                 => "25.12.",
  957     "Stephanitag"               => "26.12."
  958 };
  959 
  960 # Thanks to:
  961 # Herbert Liechti <herbert.liechti@thinx.ch>
  962 # Marco Hunn <m_hunn@blue-design.ch>
  963 # Aldo Calpini <dada@perl.it>
  964 
  965 $Profiles->{'CH-DE'} = # Schweiz - Deutsch
  966 {
  967     "Neujahr"                   => "01.01.",
  968     "Dreikönigstag"             => "06.01.",
  969     "Karfreitag"                => "#-2",
  970     "Ostersonntag"              => "+0",
  971     "Ostermontag"               => "+1",
  972     "Auffahrt"                  => "+39",
  973     "Pfingstsonntag"            => "+49",
  974     "Pfingstmontag"             => "+50",
  975     "Fronleichnam"              => "#+60",
  976     "Bundesfeiertag"            => "01.08.",
  977     "Mariä Himmelfahrt"         => "#15.08.",
  978     "Allerheiligen"             => "#01.11.",
  979     "Weihnachten"               => "25.12.",
  980     "Stefanstag"                => "26.12."
  981 };
  982 $Profiles->{'CH-FR'} = # Suisse - Français
  983 {
  984     "Nouvel An"                 => "01.01.",
  985     "Épiphanie"                 => "06.01.",
  986     "Vendredi Saint"            => "#-2",
  987     "Pâques"                    => "+0",
  988     "Lundi de Pâques"           => "+1",
  989     "L'Ascension"               => "+39",
  990     "La Pentecôte"              => "+49",
  991     "Lundi de Pentecôte"        => "+50",
  992     "Fête Dieu"                 => "#+60",
  993     "Fête fédérale"             => "01.08.",
  994     "Assomption"                => "#15.08.",
  995     "Toussaint"                 => "#01.11.",
  996     "Nöel"                      => "25.12.",
  997     "St. Etienne"               => "26.12."
  998 };
  999 $Profiles->{'CH-IT'} = # Switzerland - Italian
 1000 {
 1001     "Capo d'Anno"               => "01.01.",
 1002     "Epifania"                  => "06.01.",
 1003     "Venerdì Santo"             => "#-2",
 1004     "Pasqua"                    => "+0",
 1005     "Lunedì di Pasqua"          => "+1",
 1006     "Ascensione"                => "+39",
 1007     "Pentecoste"                => "+49",
 1008     "Lunedì di Pentecoste"      => "+50",
 1009     "Corpus Domini"             => "#+60",
 1010     "Festa federale"            => "01.08.",
 1011     "Assunzione di M.V."        => "#15.08.",
 1012     "Ognissanti"                => "#01.11.",
 1013     "S. Natale"                 => "25.12.",
 1014     "S. Stefano"                => "26.12."
 1015 };
 1016 $Profiles->{'CH-RM'} = # Swizra rumantscha (Switzerland - Rhaeto-Romance)
 1017 {
 1018     "Büman"                     => "01.01.",
 1019     "Di da la Babania"          => "#06.01.",
 1020     "Venderdi sonch"            => "-2",
 1021     "Dumengia da Pasqua"        => "+0",
 1022     "Firà da Pasqua"            => "+1",
 1023     "Ascensiun"                 => "+39",
 1024     "Dumengia da Tschinquaisma" => "+49",
 1025     "Firà da Tschinquaisma"     => "+50",
 1026     "Sonch sang"                => "#+60",
 1027     "Festa federala"            => "01.08.",
 1028     "Assunziun da Maria"        => "#15.08.",
 1029     "Festa da tuot ils sonchs"  => "#01.11.",
 1030     "Festa da Nadal"            => "25.12.",
 1031     "Stefan sonch"              => "26.12."
 1032 };
 1033 
 1034 # Thanks to:
 1035 # François Desarmenien <francois@fdesar.net>
 1036 # Arnaud Calvo <arnaud@calvo-france.com>
 1037 # Jean Forget <ponder.stibbons@wanadoo.fr>
 1038 # Cedric Bouvier <Cedric.Bouvier@ctp.com>
 1039 # Julien Quint <julien.quint@imag.fr>
 1040 
 1041 $Profiles->{'FR'} = # France
 1042 {
 1043     "Jour de l'An"              => "01.01.",
 1044     "Épiphanie"                   => "#06.01.",
 1045     "Chandeleur"                => "#02.02.",
 1046     "Mardi-Gras"                => "#-47",
 1047     "Mercredi des Cendres"      => "#-46",
 1048     "Dimanche des Rameaux"      => "-7",
 1049     "Pâques"                    => "+0",
 1050     "Lundi de Pâques"           => "+1",
 1051     "Fin de Guerre d'Algérie"   => "#19.03.", # Contrat d'Evian 19.03.1962
 1052     "Fête du Travail"           => "01.05.",
 1053     "Victoire 1945"             => "08.05.",
 1054     "Saint Jean"                => "#24.06.",
 1055     "Ascension"                 => "+39",
 1056     "Pentecôte"                 => "+49",
 1057     "Lundi de Pentecôte"        => "+50",
 1058     "Fête Nationale"            => "14.07.",
 1059     "Assomption"                => "15.08.",
 1060     "Toussaint"                 => "01.11.",
 1061     "Jour des Défunts"          => "#02.11.",
 1062     "Saint Martin"              => "#11.11",
 1063     "Armistice 1918"            => "11.11.",
 1064     "Avent"                     => \&Advent1,
 1065     "Noël"                      => "25.12.",
 1066     "Saint Sylvestre"           => "#31.12."
 1067 };
 1068 
 1069 $Profiles->{'BE-DE'} = # Belgien
 1070 {
 1071     "Neujahr"                   => "01.01.",
 1072     "Dreikönigstag"             => "#06.01.",
 1073     "Lichtmesse"                => "#02.02.",
 1074     "Karnevalsdienstag"         => "#-47",
 1075     "Aschermittwoch"            => "#-46",
 1076     "Palmsonntag"               => "-7",
 1077     "Ostersonntag"              => "+0",
 1078     "Ostermontag"               => "+1",
 1079     "Tag der Arbeit"            => "01.05.",
 1080     "Christi Himmelfahrt"       => "+39",
 1081     "Pfingstsonntag"            => "+49",
 1082     "Pfingstmontag"             => "+50",
 1083     "Nationalfeiertag"          => "21.07.",
 1084     "Mariä Himmelfahrt"         => "15.08.",
 1085     "Allerheiligen"             => "01.11.",
 1086     "Allerseelen"               => "#02.11.",
 1087     "Waffenstillstand 1918"     => "11.11.",
 1088     "Weihnachten"               => "25.12.",
 1089     "2. Weihnachtsfeiertag"     => "#26.12.",
 1090     "Sylvester"                 => "#31.12."
 1091 };
 1092 
 1093 # Thanks to:
 1094 # Hendrik Van Belleghem <beatnik@quickndirty.org>
 1095 # Stefaan Colson <stefaan.colson@sitel.com>
 1096 
 1097 $Profiles->{'BE-NL'} = # België
 1098 {
 1099     "Nieuwjaar"                 => "01.01.",
 1100     "Driekoningen"              => "#06.01.",
 1101     "Lichtmis"                  => "#02.02.",
 1102     "Vastenavond"               => "#-47",
 1103     "Aswoensdag"                => "#-46",
 1104     "Palmzondag"                => "-7",
 1105     "Pasen"                     => "+0",
 1106     "Paasmaandag"               => "+1",
 1107     "Dag van de arbeid"         => "01.05.",
 1108     "Hemelvaartsdag"            => "+39", # Onze Lieve Heer Hemelvaart
 1109     "Pinksteren"                => "+49",
 1110     "Pinkstermaandag"           => "+50",
 1111     "Feest van de Vlaamse Gemeenschap" => "#11.07",
 1112     "Nationale feestdag"        => "21.07.",
 1113     "OLV Hemelvaart"            => "15.08.", # Onze Lieve Vrouw Hemelvaart
 1114     "Allerheiligen"             => "01.11.",
 1115     "Allerzielen"               => "#02.11.",
 1116     "Wapenstilstand 1918"       => "11.11.",
 1117     "Kerstmis"                  => "25.12.",
 1118     "Tweede kerstdag"           => "#26.12."
 1119 };
 1120 
 1121 # Thanks to:
 1122 # Stefaan Colson <stefaan.colson@sitel.com>
 1123 # Stephane Rondal <rondal@usa.net>
 1124 
 1125 $Profiles->{'BE-FR'} = # Belgique
 1126 {
 1127     "Nouvel An"                 => "01.01.",
 1128     "Épiphanie"                   => "#06.01.",
 1129     "Chandeleur"                => "#02.02.",
 1130     "Mardi-Gras"                => "#-47",
 1131     "Mercredi des Cendres"      => "#-46",
 1132     "Dimanche des Rameaux"      => "-7",
 1133     "Pâques"                    => "+0",
 1134     "Lundi de Pâques"           => "+1",
 1135     "Fête du Travail"           => "01.05.",
 1136     "Ascension"                 => "+39",
 1137     "Pentecôte"              => "+49",
 1138     "Lundi de Pentecôte"        => "+50",
 1139     "Fête Nationale"            => "21.07.",
 1140     "Assomption"                => "15.08.",
 1141     "Fête de la Communauté Française" => "#27.09.",
 1142     "Toussaint"                 => "01.11.",
 1143     "Jour des Défunts"          => "#02.11.",
 1144     "Armistice 1918"            => "11.11.",
 1145     "Noël"                      => "25.12.",
 1146     "2ième Jour de Noël"        => "#26.12.",
 1147     "Saint Sylvestre"           => "#31.12."
 1148 };
 1149 
 1150 $Profiles->{'LU-DE'} = # Großherzogtum Luxemburg
 1151 {
 1152     "Neujahr"                   => "01.01.",
 1153     "Fastnachtsmontag"          => "#-48", # regional unterschiedlich
 1154     "Ostersonntag"              => "+0",
 1155     "Ostermontag"               => "+1",
 1156     "Tag der Arbeit"            => "01.05.",
 1157     "Christi Himmelfahrt"       => "+39",
 1158     "Pfingstsonntag"            => "+49",
 1159     "Pfingstmontag"             => "+50",
 1160     "Nationalfeiertag"          => "23.06.",
 1161     "Mariä Himmelfahrt"         => "15.08.",
 1162     "Allerheiligen"             => "01.11.",
 1163     "Allerseelen"               => "#02.11.", # regional unterschiedlich
 1164     "Weihnachten"               => "25.12.",
 1165     "2. Weihnachtsfeiertag"     => "26.12."
 1166 };
 1167 $Profiles->{'LU-FR'} = # Grand Duché du Luxembourg
 1168 {
 1169     "Nouvel An"                 => "01.01.",
 1170     "Veille du Mardi Gras"      => "#-48", # varie selon la région
 1171     "Pâques"                    => "+0",
 1172     "Lundi de Pâques"           => "+1",
 1173     "Fête du Travail"           => "01.05.",
 1174     "Ascension"                 => "+39",
 1175     "Pentecôte"                 => "+49",
 1176     "Lundi de Pentecôte"        => "+50",
 1177     "Jour National"             => "23.06.",
 1178     "Assomption"                => "15.08.",
 1179     "Toussaint"                 => "01.11.",
 1180     "Jour des Défunts"          => "#02.11.", # varie selon la région
 1181     "Noël"                      => "25.12.",
 1182     "2ième Jour de Noël"        => "#26.12.",
 1183     "Saint Sylvestre"           => "#31.12."
 1184 };
 1185 
 1186 $Profiles->{'PT'} = # Portugal
 1187 {
 1188     "Ano Novo"                  => "01.01.",
 1189     "Terça-Feira de Carnaval"   => "-47",
 1190     "Paixão de Cristo"          => "-2",
 1191     "Domingo de Páscoa"         => "+0",
 1192     "Dia da Liberdade"          => "25.04.",
 1193     "Dia do Trabalho"           => "01.05.",
 1194     "Ascensão de Cristo"        => "+39",
 1195     "Domingo de Pentecostes"    => "+49",
 1196     "Dia Nacional"              => "10.06.",
 1197     "Corpus Christi"            => "#+60", # varia segundo a região
 1198     "Assunção de Maria"         => "15.08.",
 1199     "Dia da República"          => "05.10.",
 1200     "Todos os Santos"           => "01.11.",
 1201     "Dia da Independência"      => "01.12.",
 1202     "Conceição de Maria"        => "08.12.",
 1203     "Natal"                     => "25.12."
 1204 };
 1205 
 1206 # Thanks to:
 1207 # Arturo Valdes <arturovaldes@usa.net>
 1208 
 1209 $Profiles->{'ES'} = # España
 1210 {
 1211     "Año Nuevo"                 => "01.01.",
 1212     "Epifanía del Señor"        => "06.01.",
 1213     "Día de Santo José"         => "#19.03.",
 1214     "Jueves Santo"              => "#-3",
 1215     "Viernes Santo"             => "-2",
 1216     "Domingo de Páscuas"        => "+0",
 1217     "Lunes de Páscuas"          => "#+1", # varía segundo la region
 1218     "Día del Trabajo"           => "01.05.",
 1219     "Domingo de Pentecostes"    => "+49",
 1220     "Santiago Apóstol"          => "#25.07.",
 1221     "Ascensión de la Virgen"    => "15.08.", # Ascensión de María
 1222     "Fiesta Nacional de España" => "12.10.",
 1223     "Todos los Santos"          => "01.11.",
 1224     "Día de la Constitución"    => "06.12.",
 1225     "Inmaculada Concepción"     => "08.12.", # Día de la Concepción
 1226     "Natividad del Señor"       => "25.12."
 1227 };
 1228 
 1229 # Thanks to:
 1230 # Michele Beltrame <mb@io.com>
 1231 # Aldo Calpini <dada@perl.it>
 1232 # Alessio Bragadini <alessio@sevenseas.org>
 1233 
 1234 $Profiles->{'IT'} = # Italia
 1235 {
 1236     "Capodanno"                 => "01.01.",
 1237     "Epifania"                  => "06.01.",
 1238     "San Valentino"             => "#14.02.",
 1239     "Festa della Donna"         => "#08.03.",
 1240     "Festa della Mamma"         => "1/Sun/May",
 1241     "Martedì Grasso"            => "#-47",
 1242     "Pasqua"                    => "+0",
 1243     "Lunedì dell'Angelo"        => "+1",
 1244     "Liberazione d'Italia 1945" => "25.04.",
 1245     "Festa del Lavoro"          => "01.05.",
 1246     "Fondazione della Repubblica 1946" => \&IT_Fondazione,
 1247     "Pentecoste"                => "+49",
 1248     "Ferragosto"                => "15.08.",
 1249     "Tutti i Santi"             => "01.11.",
 1250     "Celebrazione dei Defunti"  => "#02.11.",
 1251     "Giorno dell'Unità Nazionale" => "#04.11.",
 1252     "Fine della 1a Guerra Mondiale" => "#04.11.",
 1253     "Giorno delle Forze Armate" => "#04.11.",
 1254     "Immacolata Concezione"     => "08.12.",
 1255     "Natale"                    => "25.12.",
 1256     "S. Stefano"                => "26.12."
 1257 };
 1258 
 1259 # Fixed thanks to:
 1260 # Michele Valzelli <spleen.leveller@gmail.com>
 1261 
 1262 sub IT_Fondazione
 1263 {
 1264     my($year,$label) = @_;
 1265 
 1266     if ($year >= 1947)
 1267     {
 1268         if (($year <= 1977) or ($year >= 2000)) { return($year,6,2);     }
 1269         else                                    { return($year,6,2,'#'); } # only commemorative
 1270     }
 1271     return(); # didn't exist before 1947
 1272 }
 1273 
 1274 # Thanks to:
 1275 # Georg Mavridis <GM@mavridis.net>
 1276 
 1277 $Profiles->{'GR'} = # Greece
 1278 {
 1279     "Prwtohronia"                 => "01.01.",  # New Year
 1280     "Theofaneia"                  => "06.01.",  # Epifania
 1281     "Katharh devtera"             => "-48",     # Carnival Monday
 1282 #   "???"                         => "???",     # Annunciation of Maria
 1283     "Ethniki giorth 1"            => "25.03.",  # National Day #1
 1284     "Megalh paraskevh"            => "-2",      # Good Friday
 1285     "Kyriakh toy pasha"           => "+0",      # Easter Sunday
 1286     "Devtera toy pasha"           => "+1",      # Easter Monday
 1287     "Analypsews"                  => "#+39",    # Ascension of Christ
 1288     "Kyriakh toy agiou pnevmatos" => "+49",     # Whitsunday
 1289     "Agiou pnevmatos"             => "+50",     # Whitmonday
 1290     "Hmera ths ergasias"          => "01.05.",  # Labour Day (also commonly called "Prwtomagia")
 1291     "Koimhsews theotokoy"         => "15.08.",  # Ascension of Maria
 1292     "Timioy stavrou"              => "#14.09.", # Feast of the Elevation of the Cross
 1293     "Ethniki giorth 2"            => "28.10.",  # National Day #2
 1294     "Hristougenna"                => "25.12.",  # Christmas (1st Day)
 1295     "Devterh mera hristougennwn"  => "26.12.",  # Christmas (2nd Day)
 1296 };
 1297 
 1298 # Thanks to:
 1299 # Flemming Mahler Larsen <mahler@dk.net>
 1300 
 1301 $Profiles->{'DK'} = # Denmark
 1302 {
 1303     "Nytårsdag"              => "01.01.",
 1304     "Hellig tre Konger"         => "1/Sun/Jan", # (H3K) - First Sunday of the year
 1305     "Fastelavn"                 => "-49", # 7th Sunday before Easter
 1306     "Palme søndag"           => "-7", # Sunday before Easter
 1307     "Skærtorsdag"            => "-3",
 1308     "Langfredag"                => "-2",
 1309     "Påskedag"               => "+0",
 1310     "2. Påskedag"            => "+1",
 1311     "Store bededag"             => "+26", # 4th Friday after Easter
 1312     "Grundlovsdag"              => "05.06.",
 1313     "Skt. Hans aften"           => "23.06.",
 1314     "Kristi himmelfart"         => "+39",
 1315     "Pinsedag"                  => "+49",
 1316     "2. Pinsedag"               => "+50",
 1317     "Mortensdag"                => "11.10.",
 1318     "Allehelgen"                => "1/Sun/Nov", # Halloween
 1319     "1. Advent"                 => \&Advent,
 1320     "2. Advent"                 => \&Advent,
 1321     "3. Advent"                 => \&Advent,
 1322     "4. Advent"                 => \&Advent,
 1323     "Juleaftensdag"             => "24.12.",
 1324     "1. Juledag"                => "25.12.",
 1325     "2. Juledag"                => "26.12."
 1326 };
 1327 
 1328 # Thanks to:
 1329 # H. Merijn Brand <h.m.brand@xs4all.nl>
 1330 # Johan Vromans <JVromans@squirrel.nl>
 1331 # Abigail <abigail@foad.org>
 1332 # Elizabeth Mattijsen <liz@dijkmat.nl>
 1333 # Abe Timmerman <abe@ztreet.demon.nl>
 1334 # Jigal van Hemert <jigal.van.hemert@iquip.nl>
 1335 # Wim Verhaegen <wim.verhaegen@esat.kuleuven.ac.be>
 1336 # Cas Tuyn <cas.tuyn@asml.nl>
 1337 # Remco B. Brink <remco@solbors.no>
 1338 # Can Bican <can@ripe.net>
 1339 # Ziya Suzen <ziya@ripe.net>
 1340 # Henk Uijterwaal <henk@ripe.net>
 1341 # Eric Veldhuyzen <ericv@xs4all.net>
 1342 
 1343 $Profiles->{'NL'} = # Nederland
 1344 {
 1345     "Nieuwjaar"                 => "01-01",
 1346     "Driekoningen"              => "#06-01",
 1347     "Valentijnsdag"             => "#14-02",
 1348     "Biddag voor het gewas"     => "#2/Wed/Mar",
 1349     "Carnaval"                  => "#-48",
 1350     "Vastenavond"               => "#-47",
 1351     "Aswoensdag"                => "#-46",
 1352     "Een April"                 => "#01-04",
 1353     "Palmpasen"                 => "-7",
 1354     "Witte Donderdag"           => "#-3",
 1355     "Goede Vrijdag"             => "#-2",
 1356     "Stille Zaterdag"           => "#-1",
 1357     "Pasen"                     => "+0",
 1358     "Paasmaandag"               => "+1",
 1359     "Moederdag"                 => "2/Sun/May",
 1360     "Vaderdag"                  => "3/Sun/Jun",
 1361     "Koninginnedag"             => \&NL_Koninginnedag,
 1362     "Dodenherdenking"           => "#04-05",
 1363     "Bevrijdingsdag"            => \&NL_Bevrijdingsdag,
 1364     "Hemelvaart"                => "+39",
 1365     "Pinksteren"                => "+49",
 1366     "Pinkstermaandag"           => "+50",
 1367     "Trinitatis"                => "+56",
 1368     "Prinsjesdag"               => "#3/Tue/Sep",
 1369     "Dierendag"                 => "#04-10",
 1370     "Dankdag voor het gewas"    => "#1/Wed/Nov",
 1371     "Sint Maarten"              => "#11-11",
 1372     "Sinterklaasavond"          => "#05-12",
 1373     "Sinterklaas"               => "#06-12",
 1374     "Koninkrijksdag"            => "#15-12",
 1375     "Kerstmis"                  => "25-12",
 1376     "2e Kerstdag"               => "26-12"
 1377 };
 1378 
 1379 sub NL_Koninginnedag
 1380 {
 1381     my($year,$label) = @_;
 1382     my(@date);
 1383 
 1384     @date = ($year,4,30);
 1385     if (Day_of_Week(@date) == 7) { @date = Add_Delta_Days(@date,-1); }
 1386     return(@date);
 1387 }
 1388 
 1389 # Bevrijdingsdag:
 1390 #
 1391 # 1945     : Liberation from German occupation in World War II
 1392 # 1946,1947: Official holiday
 1393 # 1948,1949: Afternoon off for government personnel, some local celebrations
 1394 # 1950-1957: No official celebrations
 1395 # 1958-1981: Commemorative, holiday for government personnel, schools etc.
 1396 # 1982-1990: Official holiday for everybody
 1397 # 1990-... : Official holiday every 5th year for everybody
 1398 #
 1399 # See also
 1400 # http://www.herdenkenenvieren.nl/utility/print.jsp?detail=2197&contentid=2197&siteid=hev&nofooter=true
 1401 
 1402 # As far as I know, 'bevrijdingsdag' is an official national celebration
 1403 # day for everybody, but this does NOT mean that you do not have to go to
 1404 # work. This depends on your employer. In general, for everybody it is
 1405 # just a normal work day, except for people working for the government.
 1406 #
 1407 # See also
 1408 # http://home.szw.nl/faq/dsp_faq.cfm?view=3Ddetail&link_id=3D41264
 1409 # http://www.abvakabo.net/faq/index.php?page=3Dindex_v2&id=3D333&c=3D91
 1410 
 1411 sub NL_Bevrijdingsdag
 1412 {
 1413     my($year,$label) = @_;
 1414 
 1415     if ($year >= 1945)
 1416     {
 1417         if (                     ($year <= 1947)  or
 1418             (($year >= 1982) and ($year <= 1990)) or
 1419             (($year >  1990) and (($year % 5) == 0)))
 1420         {
 1421             return($year,5,5);     # true holiday
 1422         }
 1423         elsif (($year == 1948) or ($year == 1949))
 1424         {
 1425             return($year,5,5,':'); # half day off
 1426         }
 1427         else
 1428         {
 1429             return($year,5,5,'#'); # only commemorative
 1430         }
 1431     }
 1432     return(); # didn't exist before 1945
 1433 }
 1434 
 1435 # Thanks to:
 1436 # Erland Sommarskog <sommar@algonet.se>
 1437 # Magnus Bodin <magnus@bodin.org>
 1438 # Olle E. Johansson <oej@edvina.net>
 1439 
 1440 $Profiles->{'SV'} = # Sverige
 1441 {
 1442     "Nyårsdagen"                => "01.01.",
 1443     "Trettondedagsafton"        => "#05.01.", # 12 days after Dec 24th
 1444     "Trettondedag jul"          => "06.01.",  # 13 days after Dec 24th
 1445     "Tjugondedag Knut"          => "#13.01.", # 20 days after Dec 24th according to Olle E. Johansson
 1446     "Kyndelsmässodagen"         => "#02.02",
 1447     "Marie bebådelsedag"        => "#25.03",
 1448     "Skärtorsdag"               => "#-3",
 1449     "Långfredagen"              => "-2",
 1450     "Påskafton"                 => "#-1", # like a Saturday
 1451     "Påskdagen"                 => "+0",
 1452     "Annandag påsk"             => "+1",
 1453     "Valborgsmässoafton"        => "#30.04.",
 1454     "Första maj"                => "01.05.",
 1455     "Syttende maj"              => "#17.05.", # not a swedish but a norwegian holiday according to Olle E. Johansson
 1456     "Mors dag"                  => "5/Sun/May", # Last Sun in May
 1457     "Fars dag"                  => "2/Sun/Nov", # 2nd  Sun in Nov
 1458     "Sveriges nationaldag"      => "#06.06.",
 1459     "Johannes Döparens dag"     => "#24.06.",
 1460     "Kristi himmelsfärds dag"   => "+39",
 1461     "Pingstafton"               => "#+48", # like a Saturday
 1462     "Pingstdagen"               => "+49",
 1463     "Annandag pingst"           => "+50",
 1464     "Midsommarafton"            => \&SV_Midsommarafton, # like a Saturday
 1465     "Midsommardagen"            => \&SV_Midsommardagen,
 1466     "Alla helgons dag"          => \&SV_Alla_Helgons_Dag,
 1467     "Allhelgonadagen"           => "#01.11.",
 1468     "FN-dagen"                  => "#24.10.",
 1469     "Gustav Adolfs-dagen"       => "#06.11.",
 1470     "Nobeldagen"                => "#10.12.",
 1471     "Julafton"                  => "#24.12.", # like a Saturday
 1472     "Juldagen"                  => "25.12.",
 1473     "Annandag jul"              => "26.12.",
 1474     "Nyårsafton"                => "#31.12." # like a Saturday
 1475 };
 1476 
 1477 sub SV_Midsommarafton # Friday that falls on June 19th to 25th
 1478 {
 1479     my($year,$label) = @_;
 1480     return( Add_Delta_Days($year,6,28,
 1481         -(Day_of_Week($year,6,28)+2)), '#' );
 1482 }
 1483 sub SV_Midsommardagen # Saturday that falls on June 20th to 26th
 1484 {
 1485     my($year,$label) = @_;
 1486     return( Add_Delta_Days($year,6,28,
 1487         -(Day_of_Week($year,6,28)+1)) );
 1488 }
 1489 sub SV_Alla_Helgons_Dag # Saturday that falls on Oct 31st to Nov 6th
 1490 {
 1491     my($year,$label) = @_;
 1492     return( Add_Delta_Days($year,11,8,
 1493         -(Day_of_Week($year,11,8)+1)) );
 1494 }
 1495 
 1496 # Thanks to:
 1497 # Gisle Aas <gisle@aas.no>
 1498 # Remco B. Brink <remco@solbors.no>
 1499 # Lars Ole <ma-karl2@online.no>
 1500 # Vetle Roeim <vetler@opera.com>
 1501 
 1502 $Profiles->{'NO'} = # Norway
 1503 {
 1504     "Nyttårsdag"              => "01/01",
 1505     "Onsdag før Skjærtorsdag" => "#-4", # sometimes half a day off
 1506     "Skjærtorsdag"            => "-3",
 1507     "Langfredag"              => "-2",
 1508     "Påskedag"                => "+0",
 1509     "2. Påskedag"             => "+1",
 1510     "1. mai"                  => "05/01",
 1511     "Grunnlovsdag"            => "05/17",
 1512     "Kristi himmelfartsdag"   => "+39",
 1513     "Pinsedag"                => "+49",
 1514     "2. Pinsedag"             => "+50",
 1515     "Julaften"                => "#12/24", # sometimes half a day off
 1516     "Juledag"                 => "12/25",
 1517     "2. Juledag"              => "12/26",
 1518     "Nyttårsaften"            => "#31.12" # sometimes half a day off
 1519 };
 1520 
 1521 ## Thanks to:
 1522 ## Sercan Uslu <sercanuslu@su.sabanciuniv.edu>
 1523 #
 1524 #$Profiles->{'TR'} = # Türkiye
 1525 #{
 1526 ## National Public Holidays (fixed):
 1527 #
 1528 #    "New Year's Day"                         => "01-01",
 1529 #    "National Sovereignty Day"               => "23-04",
 1530 #    "Children's Day"                         => "23-04",
 1531 #    "Atatürk Commemoration"                  => "19-05",
 1532 #    "Youth and Sports Day"                   => "19-05",
 1533 #    "Victory Day"                            => "30-08",
 1534 #    "Republic Day"                           => "29-10",
 1535 #
 1536 ## Religious Public Holidays (moving):
 1537 #
 1538 #    "Kurban Bayram (Eid al Adha) 1"          => "22-02", # only valid in 2002
 1539 #    "Kurban Bayram (Eid al Adha) 2"          => "23-02", # only valid in 2002
 1540 #    "Kurban Bayram (Eid al Adha) 3"          => "24-02", # only valid in 2002
 1541 #    "Kurban Bayram (Eid al Adha) 4"          => "25-02", # only valid in 2002
 1542 #
 1543 #    "Ramazan / Seker Bayram (Eid al Fitr) 1" => "05-12", # only valid in 2002
 1544 #    "Ramazan / Seker Bayram (Eid al Fitr) 2" => "06-12", # only valid in 2002
 1545 #    "Ramazan / Seker Bayram (Eid al Fitr) 3" => "07-12"  # only valid in 2002
 1546 #};
 1547 
 1548 # Thanks to:
 1549 # Jonathan Stowe <gellyfish@gellyfish.com>
 1550 
 1551 $Profiles->{'GB'} = # Great Britain
 1552 {
 1553     "New Year's Day"            => \&GB_New_Year,
 1554     "Good Friday"               => "-2",
 1555     "Easter Sunday"             => "+0",
 1556     "Easter Monday"             => "+1",
 1557     "Early May Bank Holiday"    => \&GB_Early_May,
 1558     "Late May Bank Holiday"     => "5/Mon/May", # Last Monday
 1559 #
 1560 # Jonathan Stowe <gellyfish@gellyfish.com> told me that spring
 1561 # bank holiday is the first Monday after Whitsun, but my pocket
 1562 # calendar suggests otherwise. I decided to follow my pocket
 1563 # guide and an educated guess ;-), but please correct me if
 1564 # I'm wrong!
 1565 #
 1566     "Summer Bank Holiday"       => "5/Mon/Aug", # Last Monday
 1567     "Christmas Day"             => \&GB_Christmas,
 1568     "Boxing Day"                => \&GB_Boxing
 1569 };
 1570 
 1571 sub GB_New_Year
 1572 {
 1573     my($year,$label) = @_;
 1574     return( &Next_Monday($year,1,1) );
 1575 }
 1576 #
 1577 # The following formula (also from Jonathan Stowe <gellyfish@gellyfish.com>)
 1578 # also contradicts my pocket calendar, but for lack of a better guess I
 1579 # left it as it is. Please tell me the correct formula in case this one
 1580 # is wrong! Thank you!
 1581 #
 1582 sub GB_Early_May # May bank holiday is the first Monday after May 1st
 1583 {
 1584     my($year,$label) = @_;
 1585     if (Day_of_Week($year,5,1) == 1)
 1586         { return( Nth_Weekday_of_Month_Year($year,5,1,2) ); }
 1587     else
 1588         { return( Nth_Weekday_of_Month_Year($year,5,1,1) ); }
 1589 }
 1590 sub GB_Christmas
 1591 {
 1592     my($year,$label) = @_;
 1593     return( &Next_Monday($year,12,25) );
 1594 }
 1595 sub GB_Boxing
 1596 {
 1597     my($year,$label) = @_;
 1598     return( &Next_Monday_or_Tuesday($year,12,26) );
 1599 }
 1600 
 1601 # Thanks to:
 1602 # Bianca Taylor <bianca@unisolve.com.au>
 1603 # Andie Posey <andie@posey.org>
 1604 # Don Simonetta <don.simonetta@tequinox.com>
 1605 # Paul Fenwick <pjf@cpan.org>
 1606 # Brian Graham <brian.graham@nec.com.au>
 1607 # Pat Waters <pat.waters@dir.qld.gov.au>
 1608 # Stephen Riehm <Stephen.Riehm@gmx.net>
 1609 #     http://www.holidayfestival.com/Australia.html
 1610 #     http://www.earthcalendar.net/countries/2001/australia.html
 1611 # Sven Geisler <sgeisler@aeccom.com>
 1612 # Canberra (ACT):
 1613 #     http://www.workcover.act.gov.au/labourreg/publicholidays.html
 1614 # New South Wales (NSW):
 1615 #     http://www.dir.nsw.gov.au/holidays/index.html
 1616 # Northern Territory (NT):
 1617 #     http://www.nt.gov.au/ocpe/documents/public-holidays/
 1618 # Queensland (QLD):
 1619 #     http://www.wageline.qld.gov.au/publicholidays/list_pubhols.html
 1620 # South Australia (SA):
 1621 #     http://www.sacentral.sa.gov.au/information/pubhols.htm
 1622 # Tasmania (TAS):
 1623 #     http://www.workcover.tas.gov.au/WSTPublish/node/wststatutory.htm
 1624 # Victoria (VIC):
 1625 #     http://www.info.vic.gov.au/resources/publichols.htm
 1626 # Western Australia (WA):
 1627 #     http://www.doplar.wa.gov.au/wages/pub_hol1.htm
 1628 
 1629 $Profiles->{'AU'} = # Australia
 1630 {
 1631     "Australia Day"             => \&AU_Australia,
 1632     "St. Valentine's Day"       => "#14.02.",
 1633     "Good Friday"               => "-2",
 1634     "Easter Sunday"             => "+0",
 1635     "Easter Monday"             => "+1",
 1636     "Anzac Day"                 => "25.04.",
 1637     "Christmas Day"             => \&AU_Christmas,
 1638     "Boxing Day"                => \&AU_Boxing
 1639 };
 1640 
 1641 sub AU_Australia
 1642 {
 1643     my($year,$label) = @_;
 1644     return( &Next_Monday($year,1,26) );
 1645 }
 1646 sub AU_Christmas
 1647 {
 1648     my($year,$label) = @_;
 1649     return( &Next_Monday($year,12,25) );
 1650 }
 1651 sub AU_Boxing
 1652 {
 1653     my($year,$label) = @_;
 1654     return( &Next_Monday_or_Tuesday($year,12,26) );
 1655 }
 1656 sub AU_New_Year
 1657 {
 1658     my($year,$label) = @_;
 1659     return( &Next_Monday($year,1,1) );
 1660 }
 1661 sub AU_Lauceston
 1662 {
 1663     my($year,$label) = @_;
 1664     if (Nth_Weekday_of_Month_Year($year,2,3,5))
 1665         { return( Nth_Weekday_of_Month_Year($year,2,3,4) ); }
 1666     else
 1667         { return( Nth_Weekday_of_Month_Year($year,2,3,3) ); }
 1668 }
 1669 sub AU_May
 1670 {
 1671     my($year,$label) = @_;
 1672     return( &Next_Monday($year,5,1) );
 1673 }
 1674 sub AU_QLD_Anzac
 1675 {
 1676     my($year,$label) = @_;
 1677     return( &Sunday_to_Monday($year,4,25) );
 1678 }
 1679 sub AU_QLD_Brisbane
 1680 {
 1681     my($year,$label) = @_;
 1682     if (Nth_Weekday_of_Month_Year($year,8,3,5))
 1683         { return( Nth_Weekday_of_Month_Year($year,8,3,3), '#' ); }
 1684     else
 1685         { return( Nth_Weekday_of_Month_Year($year,8,3,2), '#' ); }
 1686 }
 1687 sub AU_VIC_New_Year
 1688 {
 1689     my($year,$label) = @_;
 1690     return( &Sunday_to_Monday($year,1,1) );
 1691 }
 1692 sub AU_VIC_Boxing
 1693 {
 1694     my($year,$label) = @_;
 1695     return( &Sunday_to_Monday($year,12,26) );
 1696 }
 1697 
 1698 $Profiles->{'AU-QLD'} = # Queensland
 1699 {
 1700     %{$Profiles->{'AU'}},
 1701     "New Year's Day"            => "01.01.",
 1702     "Anzac Day"                 => \&AU_QLD_Anzac,
 1703     "Easter Saturday"           => "-1",
 1704     "Labour Day"                => "1/Mon/May",
 1705     "Queen's Birthday"          => "2/Mon/Jun",
 1706     "Royal Show (Brisbane)"     => \&AU_QLD_Brisbane
 1707 };
 1708 $Profiles->{'AU-TAS'} = # Tasmania
 1709 {
 1710     %{$Profiles->{'AU'}},
 1711     "New Year's Day"            => "01.01.",
 1712     "Regatta Day"               => "2/Tue/Feb",
 1713     "Lauceston Cup Day"         => \&AU_Lauceston,
 1714     "King Island Show Day"      => "1/Tue/Mar", # uncertain! (maybe Tuesday after 1/Sun/Mar?)
 1715     "Eight Hour Day"            => "2/Mon/Mar", # dubious, formula probably wrong!
 1716     "Easter Saturday"           => "-1",
 1717     "Queen's Birthday"          => "2/Mon/Jun",
 1718     "Recreation Day"            => "1/Mon/Nov"  # only North Tasmania - date not confirmed!
 1719 };
 1720 $Profiles->{'AU-SA'} =  # South Australia
 1721 {
 1722     %{$Profiles->{'AU'}},
 1723     "New Year's Day"            => "01.01.",
 1724     "Easter Saturday"           => "-1",
 1725     "Adelaide Cup Day"          => "3/Mon/May", # uncertain! (maybe Monday after 3/Sun/May?)
 1726     "Queen's Birthday"          => "2/Mon/Jun",
 1727     "Labour Day"                => "1/Mon/Oct",
 1728     "Proclamation Day"          => "#26.12."
 1729 };
 1730 $Profiles->{'AU-WA'} =  # Western Australia
 1731 {
 1732     %{$Profiles->{'AU'}},
 1733     "New Year's Day"            => "01.01.",
 1734     "Labour Day"                => "1/Mon/Mar",
 1735     "Foundation Day"            => "1/Mon/Jun",
 1736     "Queen's Birthday"          => "1/Mon/Oct"
 1737 };
 1738 $Profiles->{'AU-ACT'} = # Australian Capital Territory
 1739 {
 1740     %{$Profiles->{'AU'}},
 1741     "New Year's Day"            => "01.01.",
 1742     "Canberra Day"              => "2/Mon/Mar", # dubious, formula probably wrong!
 1743     "Easter Saturday"           => "-1",
 1744     "Queen's Birthday"          => "2/Mon/Jun",
 1745     "Labour Day"                => "1/Mon/Oct"
 1746 };
 1747 $Profiles->{'AU-NSW'} = # New South Wales
 1748 {
 1749     %{$Profiles->{'AU'}},
 1750     "New Year's Day"            => \&AU_New_Year,
 1751     "Easter Saturday"           => "-1",
 1752     "Queen's Birthday"          => "2/Mon/Jun",
 1753     "Labour Day"                => "1/Mon/Oct"
 1754 };
 1755 $Profiles->{'AU-NT'} =  # Northern Territory
 1756 {
 1757     %{$Profiles->{'AU'}},
 1758     "New Year's Day"            => "01.01.",
 1759     "Easter Saturday"           => "-1",
 1760     "May Day"                   => \&AU_May,
 1761     "Queen's Birthday"          => "2/Mon/Jun",
 1762     "Picnic Day"                => "1/Mon/Aug"
 1763 };
 1764 $Profiles->{'AU-VIC'} = # Victoria
 1765 {
 1766     %{$Profiles->{'AU'}},
 1767     "New Year's Day"            => \&AU_VIC_New_Year,
 1768     "Australia Day"             => "26.01.",
 1769     "Labour Day"                => "2/Mon/Mar",
 1770     "Queen's Birthday"          => "2/Mon/Jun",
 1771     "Melbourne Cup Day"         => "#1/Tue/Nov", # only in metropolitian municipal districts
 1772     "Christmas Day"             => "25.12.",
 1773     "Boxing Day"                => \&AU_VIC_Boxing
 1774 };
 1775 
 1776 # Thanks to:
 1777 # John Bolland <jbolland@mainzeal.co.nz>
 1778 # Andie Posey <andie@posey.org>
 1779 
 1780 $Profiles->{'NZ'} = # New Zealand
 1781 {
 1782     "New Year's Day"            => \&NZ_New_Year,
 1783     "Day after New Year's Day"  => \&NZ_After_New_Year,
 1784     "Waitangi Day"              => "06.02.",
 1785     "St. Valentine's Day"       => "#14.02.",
 1786     "St. David's Day"           => "#01.03.",
 1787     "St. Patrick's Day"         => "#17.03.",
 1788     "St. George's Day"          => "#23.04.",
 1789     "St. Andrew's Day"          => "#30.11.",
 1790     "Good Friday"               => "-2",
 1791     "Easter Sunday"             => "+0",
 1792     "Easter Monday"             => "+1",
 1793     "Anzac Day"                 => "25.04.",
 1794     "Queen's Birthday"          => "1/Mon/Jun",
 1795     "Labour Day"                => \&NZ_Labour,
 1796     "Christmas Day"             => \&NZ_Christmas,
 1797     "Boxing Day"                => \&NZ_Boxing,
 1798     "Southland"                 => \&NZ_Southland,
 1799     "Wellington"                => \&NZ_Wellington,
 1800     "Auckland"                  => \&NZ_Auckland,
 1801     "Taranaki"                  => \&NZ_Taranaki,
 1802     "Otago"                     => \&NZ_Otago,
 1803     "South Canterbury"          => \&NZ_South_Canterbury,
 1804     "Hawkes Bay"                => \&NZ_Hawkes_Bay,
 1805     "Marlborough"               => \&NZ_Marlborough,
 1806     "North Canterbury"          => \&NZ_North_Central_Canterbury,
 1807     "Central Canterbury"        => \&NZ_North_Central_Canterbury,
 1808     "Chatham Islands"           => \&NZ_Chatham_Islands,
 1809     "Westland"                  => \&NZ_Westland,
 1810     "Christchurch Show Day"     => \&NZ_Christchurch
 1811 };
 1812 
 1813 sub NZ_New_Year
 1814 {
 1815     my($year,$label) = @_;
 1816     return( &Next_Monday($year,1,1) );
 1817 }
 1818 sub NZ_After_New_Year
 1819 {
 1820     my($year,$label) = @_;
 1821     return( &Next_Monday_or_Tuesday($year,1,2) );
 1822 }
 1823 sub NZ_Labour
 1824 {
 1825     my($year,$label) = @_;
 1826     return( &Next_Monday($year,10,22) );
 1827 }
 1828 sub NZ_Christmas
 1829 {
 1830     my($year,$label) = @_;
 1831     return( &Next_Monday($year,12,25) );
 1832 }
 1833 sub NZ_Boxing
 1834 {
 1835     my($year,$label) = @_;
 1836     return( &Next_Monday_or_Tuesday($year,12,26) );
 1837 }
 1838 
 1839 sub NZ_Southland
 1840 {
 1841     my($year,$label) = @_;
 1842     return( &Next_Monday($year,1,15), '#' );
 1843 }
 1844 sub NZ_Wellington
 1845 {
 1846     my($year,$label) = @_;
 1847     return( &Next_Monday($year,1,22), '#' );
 1848 }
 1849 sub NZ_Auckland
 1850 {
 1851     my($year,$label) = @_;
 1852     return( &Next_Monday($year,1,29), '#' );
 1853 }
 1854 sub NZ_Taranaki
 1855 {
 1856     my($year,$label) = @_;
 1857     return( &Next_Monday($year,3,12), '#' );
 1858 }
 1859 sub NZ_Otago
 1860 {
 1861     my($year,$label) = @_;
 1862     return( &Next_Monday($year,3,26), '#' );
 1863 }
 1864 sub NZ_South_Canterbury
 1865 {
 1866     my($year,$label) = @_;
 1867     return( &Next_Monday($year,9,24), '#' );
 1868 }
 1869 sub NZ_Hawkes_Bay
 1870 {
 1871     my($year,$label) = @_;
 1872     return( &Previous_Friday($year,10,19), '#' );
 1873 }
 1874 sub NZ_Marlborough
 1875 {
 1876     my($year,$label) = @_;
 1877     return( &Next_Monday($year,10,29), '#' );
 1878 }
 1879 sub NZ_North_Central_Canterbury
 1880 {
 1881     my($year,$label) = @_;
 1882     return( &Previous_Friday($year,11,16), '#' );
 1883 }
 1884 sub NZ_Chatham_Islands
 1885 {
 1886     my($year,$label) = @_;
 1887     return( &Next_Monday($year,12,3), '#' );
 1888 }
 1889 sub NZ_Westland
 1890 {
 1891     my($year,$label) = @_;
 1892     return( &Next_Monday($year,12,3), '#' );
 1893 }
 1894 sub NZ_Christchurch
 1895 {
 1896     my($year,$label) = @_;
 1897     return( &Previous_Friday($year,11,9), '#' );
 1898 }
 1899 
 1900 # Thanks to:
 1901 # Ana Maria Lopes Monteiro <anamaria_l@hotmail.com>
 1902 # Pe. Amâncio <catedral@lkn.com.br>
 1903 # Inêz Hiltrop <inez@hiltrop.de>
 1904 # http://www.imagensbahia.com.br/calend.htm
 1905 # http://www.hotelonline.com.br/menu/datas.htm
 1906 # http://www.mec.gov.br/acs/relpublc/datas.shtm
 1907 
 1908 $Profiles->{'BR'} = # Brasil
 1909 {
 1910 # Feriados oficiais variaveis:
 1911 
 1912     "Carnaval"                                                                       => "-47",
 1913     "Paixão de Cristo"                                                               => "-2",
 1914     "Corpus Christi"                                                                 => "+60",
 1915 
 1916 # Feriados oficiais fixos:
 1917 
 1918     "Ano Novo"                                                                       => "01-01",
 1919     "Tiradentes (Patrono Cívico da Nação Brasileira)"                                => "21-04",
 1920     "Dia (Mundial) do Trabalho"                                                      => "01-05",
 1921     "Dia da Independência do Brasil (1822)"                                          => "07-09",
 1922     "N. Sra. Aparecida (Padroeira do Brasil)"                                        => "12-10",
 1923     "Finados"                                                                        => "02-11",
 1924     "Proclamação da República dos Estados Unidos do Brasil (1889)"                   => "15-11",
 1925     "Natal"                                                                          => "25-12",
 1926 
 1927 # Dias comemorativos variaveis:
 1928 
 1929     "Segunda-Feira de Carnaval"                                                      => "#-48",
 1930     "Cinzas"                                                                         => "#-46",
 1931     "Aleluia"                                                                        => "#-1",
 1932     "Páscoa"                                                                         => "#+0",
 1933     "Ascensão do Senhor"                                                             => "#+39",
 1934     "Pentecostes"                                                                    => "#+49",
 1935     "Dia Mundial da Oração"                                                          => "#1/Fri/Mar",
 1936     "Dia das Mães"                                                                   => "#2/Sun/May",
 1937     "Dia dos Pais"                                                                   => "#2/Sun/Aug",
 1938     "Dia da Bíblia"                                                                  => "#5/Sun/Sep",
 1939     "Dia Universal da Criança"                                                       => "#1/Mon/Oct",
 1940     "Dia do Securitário"                                                             => "#3/Mon/Oct",
 1941 
 1942 # Sinonimos:
 1943 
 1944 #   "Dia da Ressaca"                                                                 => "#-46", # >;-)
 1945     "Sexta-Feira Santa"                                                              => "#-2",
 1946     "Dia Mundial da Paz"                                                             => "#01-01",
 1947     "Confraternização Universal"                                                     => "#01-01",
 1948 #   "Fraternidade Universal"                                                         => "#01-01",
 1949     "Santos Reis"                                                                    => "#06-01",
 1950     "Inconfidência Mineira"                                                          => "#21-04",
 1951     "Todas as Almas"                                                                 => "#02-11",
 1952     "Natividade de Jesus"                                                            => "#25-12",
 1953 #   "Natividade do Senhor"                                                           => "#25-12",
 1954 
 1955 # Datas especiais:
 1956 
 1957     "Eleições"                                                                       => "#03-10",
 1958     "Início do Outono"                                                               => "#21-03",
 1959     "Início do Inverno"                                                              => "#21-06",
 1960     "Início da Primavera"                                                            => "#23-09",
 1961     "Início do Verão"                                                                => "#22-12",
 1962 #   "Começo do Horário de Verão"                                                     => "#??-??",
 1963 #   "Fim do Horário de Verão"                                                        => "#??-??",
 1964 
 1965 # Dias comemorativos (datas contraditorias ou duvidosas):
 1966 
 1967     "Início da Semana Nacional contra o Alcoolismo"                                  => "#18-02", # (1) = 3/Sun/Feb ?
 1968     "Início da Semana da Educação (1ª Semana)"                                       => "#02-07", # (1) = 1/Sun/Jul ?
 1969     "Início da Semana do Exército"                                                   => "#18-08", # (1) = 3/Sun/Aug ?
 1970     "Início da Semana do Livro Escolar"                                              => "#19-08", # (1) = 3/Sun/Aug ?
 1971     "Início da Semana do Portador de Síndrome de Down"                               => "#21-08", # (1) = 4/Sun/Aug ?
 1972     "Início da Semana da Pátria"                                                     => "#01-09", # (2) = 1/Sun/Sep ?
 1973     "Início da Semana do Trânsito"                                                   => "#19-09", # (1) = 3/Sun/Sep ?
 1974     "Dia do Trânsito"                                                                => "#25-09", # (2)
 1975     "Início da Semana da Asa"                                                        => "#17-10", # (1) = 3/Sun/Oct ?
 1976 
 1977     "Dia do Agricultor"                                                              => "#28-07", # (2)
 1978     "Dia do Engenheiro Agrônomo"                                                     => "#12-10", # (1)
 1979     "Dia do Agrônomo"                                                                => "#11-12", # (1)
 1980 
 1981     "Dia Nacional da Alfabetização"                                                  => "#08-09", # (2)
 1982 #   "Dia da Alfabetização"                                                           => "#08-09", # (2)
 1983 #   "Dia Nacional da Alfabetização"                                                  => "#14-11", # (1)
 1984 #   "Dia Nacional da Alfabetização"                                                  => "#15-11", # (1)
 1985 
 1986 #   "Dia da Amizade"                                                                 => "#23-06", # (1)
 1987     "Dia Internacional da Amizade"                                                   => "#20-07", # (1)
 1988     "Dia Mundial da Amizade"                                                         => "#20-07", # (2)
 1989     "Dia da Amizade"                                                                 => "#20-07", # (1)
 1990     "Dia do Amigo"                                                                   => "#20-07", # (1)
 1991 
 1992     "Dia dos Aposentados"                                                            => "#24-01", # (1)
 1993     "Dia do Professor Aposentado"                                                    => "#15-05", # (1)
 1994     "Dia do Funcionário Público Aposentado"                                          => "#17-06", # (2)
 1995     "Dia do Aposentado"                                                              => "#08-11", # (1)
 1996 
 1997     "Dia do Idoso"                                                                   => "#27-02", # (1)
 1998     "Dia dos Idosos"                                                                 => "#07-10", # (1)
 1999 
 2000     "Dia do Artista"                                                                 => "#23-08", # (1)
 2001     "Dia dos Artistas"                                                               => "#24-08", # (1)
 2002 
 2003 #   "Dia do Atleta"                                                                  => "#10-02", # (1)
 2004     "Dia do Atletismo"                                                               => "#12-10", # (1)
 2005     "Dia do Atleta Profissional"                                                     => "#19-12", # (1)
 2006     "Dia do Atleta"                                                                  => "#21-12", # (2)
 2007 
 2008     "Dia das Bandeiras"                                                              => "#30-05", # (1)
 2009     "Dia dos Símbolos Nacionais"                                                     => "#18-09", # (1)
 2010     "Dia da Bandeira"                                                                => "#19-11", # (4)
 2011 
 2012     "Dia dos Bandeirantes"                                                           => "#08-08", # (1)
 2013     "Dia do Bandeirante"                                                             => "#14-11", # (1)
 2014 
 2015     "Dia do Barbeiro"                                                                => "#06-09", # (1)
 2016     "Dia do Barbeiro"                                                                => "#03-11", # (1)
 2017 
 2018     "Dia do Bombeiro"                                                                => "#01-07", # (1)
 2019     "Dia dos Bombeiros Brasileiros"                                                  => "#02-07", # (1)
 2020 
 2021     "Dia do Industrial do Café"                                                      => "#12-03", # (1)
 2022     "Dia Pan-Americano do Café"                                                      => "#14-04", # (1)
 2023     "Dia do Café"                                                                    => "#14-04", # (1)
 2024 #   "Dia do Café"                                                                    => "#24-05", # (1)
 2025 
 2026     "Dia do Carteiro"                                                                => "#25-01", # (2)
 2027 #   "Dia do Carteiro"                                                                => "#05-08", # (1)
 2028 
 2029     "Criação dos Correios no Brasil"                                                 => "#25-01", # (1)
 2030     "Dia do Correio"                                                                 => "#08-04", # (1)
 2031     "Dia do Correio Aéreo Nacional"                                                  => "#12-06", # (1)
 2032     "Dia Postal Mundial"                                                             => "#09-10", # (1)
 2033 
 2034 #   "Dia Universal da Criança"                                                       => "#1/Mon/Oct",
 2035     "Dia da Criança"                                                                 => "#12-10",
 2036 
 2037     "Dia do Enfermo"                                                                 => "#14-01", # (1)
 2038     "Dia Mundial do Enfermo"                                                         => "#11-02", # (1)
 2039 
 2040 #   "Dia da Escola"                                                                  => "#15-03", # (1)
 2041     "Dia da Escola"                                                                  => "#19-03", # (3)
 2042 
 2043     "Dia do Escritor Paulista"                                                       => "#29-06", # (1)
 2044 #   "Dia do Escritor"                                                                => "#25-07", # (2)
 2045     "Dia do Escritor"                                                                => "#13-10", # (3)
 2046 
 2047     "Dia do Estudante (Feriado Escolar)"                                             => "#11-08", # (4)
 2048     "Dia Internacional do Estudante"                                                 => "#17-11", # (1)
 2049 
 2050 #   "Dia do Folclore"                                                                => "#19-08", # (1)
 2051     "Dia do Folclore"                                                                => "#22-08", # (4)
 2052 
 2053     "Dia Mundial Sem Fumar"                                                          => "#07-04", # (1)
 2054     "Dia Mundial do Combate ao Fumo"                                                 => "#31-05", # (1)
 2055     "Dia Mundial Sem Tabaco"                                                         => "#31-05", # (1)
 2056     "Dia Nacional de Combate ao Fumo"                                                => "#29-08", # (1)
 2057     "Dia do Fumar"                                                                   => "#16-11", # (1)
 2058 
 2059     "Dia da Saúde e Nutrição"                                                        => "#31-03", # (1)
 2060     "Dia Mundial da Saúde"                                                           => "#07-04", # (4)
 2061     "Dia Nacional da Saúde"                                                          => "#05-08", # (4)
 2062     "Dia da Saúde Dentária"                                                          => "#25-10", # (1)
 2063     "Dia Pan-Americano da Saúde"                                                     => "#02-12", # (1)
 2064 
 2065     "Dia do Hino Nacional"                                                           => "#13-04", # (1)
 2066     "Dia do Hino Nacional"                                                           => "#06-09", # (1)
 2067 
 2068     "Dia do Hoteleiro"                                                               => "#11-08", # (1)
 2069     "Dia do Hoteleiro"                                                               => "#09-11", # (1)
 2070 
 2071     "Festa de Iemanjá"                                                               => "#02-02", # (2)
 2072 #   "Festa de Iemanjá"                                                               => "#08-12", # (1)
 2073     "Festa de Iemanjá em São Paulo e Paraíba"                                        => "#08-12", # (1)
 2074 
 2075     "Fundação da Associação Brasileira de Imprensa (ABI)"                            => "#07-04", # (1)
 2076     "Dia Nacional da Imprensa"                                                       => "#01-06", # (1)
 2077     "Dia da Liberdade de Imprensa"                                                   => "#07-06", # (2)
 2078     "Dia Internacional da Liberdade de Imprensa"                                     => "#10-06", # (1)
 2079     "Dia da Imprensa"                                                                => "#10-09", # (4)
 2080 
 2081     "Dia da Infância"                                                                => "#20-08", # (3)
 2082     "Dia da Infância"                                                                => "#24-08", # (1)
 2083 
 2084     "Dia do Jornalista"                                                              => "#29-01", # (1)
 2085     "Dia do Jornalismo"                                                              => "#07-04", # (2)
 2086     "Dia Nacional do Jornaleiro"                                                     => "#30-09", # (1)
 2087 
 2088     "Dia dos Jovens"                                                                 => "#13-04", # (2)
 2089     "Dia Internacional do Jovem Trabalhador"                                         => "#24-04", # (4)
 2090     "Dia da Juventude Operária Católica"                                             => "#29-04", # (1)
 2091     "Dia da Juventude Constitucionalista"                                            => "#23-05", # (1)
 2092     "Dia Nacional da Juventude"                                                      => "#22-09", # (2)
 2093     "Dia Mundial da Juventude"                                                       => "#04-10", # (1)
 2094 
 2095     "Dia Mundial do Leonino"                                                         => "#08-10", # (1)
 2096     "Dia Mundial do Lions Clube"                                                     => "#10-10", # (1)
 2097 
 2098     "Dia do Livro"                                                                   => "#19-03", # (2)
 2099 #   "Dia do Livro"                                                                   => "#18-04", # (1)
 2100     "Dia Nacional do Livro"                                                          => "#29-10", # (2)
 2101 #   "Dia do Livro"                                                                   => "#23-11", # (1)
 2102     "Dia Internacional do Livro"                                                     => "#23-11", # (1)
 2103 
 2104     "Dia Internacional do Livro Infantil"                                            => "#02-04", # (3)
 2105 #   "Dia Internacional do Livro Infantil"                                            => "#02-09", # (2)
 2106     "Dia Nacional do Livro Infantil"                                                 => "#18-04", # (3)
 2107 
 2108     "Dia Oficial da Música"                                                          => "#21-11", # (1)
 2109     "Dia do Músico"                                                                  => "#22-11", # (1)
 2110 
 2111     "Dia Mundial da Água (ONU)"                                                      => "#22-03", # (2)
 2112     "Dia da Organização das Nações Unidas (ONU)"                                     => "#25-04", # (1)
 2113     "Dia das Nações Unidas (ONU) (1945)"                                               => "#24-10", # (4)
 2114 
 2115     "N. Sra. Rainha da Paz"                                                          => "#09-07", # (1)
 2116     "N. Sra. Rainha da Paz"                                                          => "#22-08", # (1)
 2117 
 2118     "N. Sra. da Penha (Feriado Escolar)"                                             => "#24-04", # (1)
 2119 #   "N. Sra. da Penha"                                                               => "#24-04", # (2)
 2120 #   "N. Sra. da Penha"                                                               => "#08-09", # (1)
 2121 
 2122     "Dia da Liberdade de Pensamento"                                                 => "#14-07", # (2)
 2123     "Dia do Pensamento"                                                              => "#13-08", # (1)
 2124 
 2125     "Dia do Petróleo"                                                                => "#29-09", # (1)
 2126     "Dia do Petróleo Brasileiro"                                                     => "#03-10", # (2)
 2127 
 2128     "Dia do Profissional de Marketing"                                               => "#08-04", # (1)
 2129     "Dia do Profissional de Marketing"                                               => "#08-05", # (1)
 2130 
 2131     "Dia do Publicitário"                                                            => "#01-02", # (1)
 2132     "Dia do Publicitário"                                                            => "#04-12", # (1)
 2133 
 2134     "Dia do Repórter"                                                                => "#16-02", # (2)
 2135 #   "Dia do Repórter"                                                                => "#17-02", # (1)
 2136     "Dia do Repórter Fotográfico"                                                    => "#02-09", # (1)
 2137 
 2138 #   "Dia da Televisão"                                                               => "#11-08", # (2)
 2139     "Santa Clara de Assis (Padroeira da Televisão)"                                  => "#11-08", # (1)
 2140 #   "Dia da Padroeira da Televisão (Santa Clara de Assis)"                           => "#12-08", # (1)
 2141 
 2142     "Santa Isabel"                                                                   => "#04-07", # (1)
 2143     "Santa Isabel"                                                                   => "#05-11", # (1)
 2144 
 2145     "Santa Terezinha (Tereza do Menino Jesus)"                                       => "#01-10", # (2)
 2146 #   "Santa Tereza"                                                                   => "#15-10", # (1)
 2147 
 2148     "Dia Mundial das Vocações Sacerdotais"                                           => "#25-04", # (1)
 2149     "Dia Mundial das Vocações"                                                       => "#26-04", # (1)
 2150     "Dia Mundial das Vocações"                                                       => "#02-05", # (1)
 2151 
 2152     "Dia do Comissário de Bordo"                                                     => "#31-05", # (1)
 2153     "Dia Internacional do Controlador de Vôo"                                        => "#18-10", # (1)
 2154     "Dia Mundial do Comissário de Vôo"                                               => "#31-10", # (1)
 2155 
 2156 # Dias comemorativos fixos (sem garantias!):
 2157 
 2158     "Dia dos Municípios"                                                             => "#01-01",
 2159     "Maria Santíssima Mãe de Deus"                                                   => "#01-01",
 2160     "Dia Nacional da Abreugrafia"                                                    => "#03-01",
 2161     "Dia da Criação do Estado de Rondônia-RO"                                        => "#04-01",
 2162     "Criação da Primeira Tipografia no Brasil"                                       => "#05-01",
 2163     "Reis Magos"                                                                     => "#06-01",
 2164     "Dia da Gratidão"                                                                => "#06-01",
 2165     "Dia da Liberdade de Cultos"                                                     => "#07-01",
 2166     "Dia do Leitor"                                                                  => "#07-01",
 2167     "Batismo do Senhor"                                                              => "#08-01",
 2168     "Dia do Fotógrafo"                                                               => "#08-01",
 2169     "Dia do Fico"                                                                    => "#09-01",
 2170     "Dia do Empresário de Contabilidade"                                             => "#12-01",
 2171     "Criação do Museu Nacional de Belas Artes (1937)"                                => "#13-01",
 2172     "Dia Mundial do Compositor"                                                      => "#15-01",
 2173     "Dia do Museu de Arte Moderna do Rio de Janeiro"                                 => "#15-01",
 2174     "Dia dos Tribunais de Contas"                                                    => "#17-01",
 2175     "Dia Nacional do Fusca"                                                          => "#20-01",
 2176     "Dia de Oxalá"                                                                   => "#20-01",
 2177     "Dia do Farmacêutico"                                                            => "#20-01",
 2178     "São Sebastião (Padroeiro da Cidade do Rio de Janeiro)"                          => "#20-01",
 2179     "Dia Mundial da Religião"                                                        => "#21-01",
 2180     "Santa Inês"                                                                     => "#21-01",
 2181     "São Vicente"                                                                    => "#22-01",
 2182     "Dia da Previdência Social"                                                      => "#24-01",
 2183     "Instituição do Casamento Cívil no Brasil"                                       => "#24-01",
 2184     "Promulgação da Constituição (1967)"                                             => "#24-01",
 2185     "Fundação da Cidade de São Paulo (1554)"                                         => "#25-01",
 2186     "Elevação do Brasil a Vice-Reinado (1763)"                                       => "#27-01",
 2187     "Santa Ângela de Médici"                                                         => "#27-01",
 2188     "Abertura dos Pontos no Brasil (1808)"                                           => "#28-01",
 2189     "Dia Nacional das Histórias em Quadrinhos"                                       => "#30-01",
 2190     "Dia da Saudade"                                                                 => "#30-01",
 2191     "Dia do Portuário (Portuária)"                                                   => "#30-01",
 2192     "Dia Mundial do Mágico"                                                          => "#31-01",
 2193     "São João Bosco"                                                                 => "#31-01",
 2194     "Dia da Solidariedade"                                                           => "#31-01",
 2195     "Dia do Agente Fiscal"                                                           => "#02-02",
 2196     "N. Sra. dos Navegantes"                                                         => "#02-02",
 2197     "São Brás"                                                                       => "#03-02",
 2198     "Dia da Papiloscopia"                                                            => "#05-02",
 2199     "Dia do Datiloscopista (Datiloscopia)"                                           => "#05-02",
 2200     "Dia do Gráfico"                                                                 => "#07-02",
 2201     "Santa Apolônia (Dentistas)"                                                     => "#09-02",
 2202     "Criação da Casa da Moeda"                                                       => "#10-02",
 2203     "Santa Escolástica"                                                              => "#10-02",
 2204     "Dia do Zelador"                                                                 => "#11-02",
 2205     "N. Sra. de Lourdes"                                                             => "#11-02",
 2206     "Dia Estadual do Ministério Público (SP)"                                        => "#12-02",
 2207     "1ª Transmissão da TV em Cores (1972)"                                           => "#16-02",
 2208     "Dia do Esportista"                                                              => "#19-02",
 2209     "Data Festiva do Exército"                                                       => "#21-02",
 2210     "Dia Nacional do Rotary (Dia do Rotariano)"                                      => "#23-02",
 2211     "Promulgação da Primeira Constituição Republicana (1891)"                        => "#24-02",
 2212     "Criação do Ministério das Comunicações"                                         => "#25-02",
 2213     "Dia Nacional do Livro Didático"                                                 => "#27-02",
 2214     "Dia do Agente Fiscal da Receita Federal"                                        => "#27-02",
 2215     "Dia da Vindima"                                                                 => "#01-03",
 2216     "Fundação da Cidade do Rio de Janeiro (1565)"                                    => "#01-03",
 2217     "Dia Nacional do Turismo"                                                        => "#02-03",
 2218     "Dia do Meteorologista"                                                          => "#03-03",
 2219     "Dia do Filatelista Brasileiro"                                                  => "#05-03",
 2220     "Dia dos Fuzileiros Navais"                                                      => "#07-03",
 2221     "Dia Internacional da Mulher"                                                    => "#08-03",
 2222     "Dia do Telefone"                                                                => "#10-03",
 2223     "São Domingos Sávio"                                                             => "#10-03",
 2224     "Dia do Bibliotecário"                                                           => "#12-03",
 2225     "Fundação da Cidade de Recife (1537)"                                            => "#12-03",
 2226     "Semana Nacional da Biblioteca"                                                  => "#12-03",
 2227     "Dia Nacional da Poesia"                                                         => "#14-03",
 2228     "Dia do Agente Autônomo de Investimentos"                                        => "#14-03",
 2229     "Dia do Conservador"                                                             => "#14-03",
 2230     "Dia do Vendedor de Livros"                                                      => "#14-03",
 2231     "Dia Mundial do Consumidor"                                                      => "#15-03",
 2232     "Dia da Constituição"                                                            => "#15-03",
 2233     "Dia do Carpinteiro"                                                             => "#19-03",
 2234     "Dia do Consertador"                                                             => "#19-03",
 2235     "Dia do Marceneiro"                                                              => "#19-03",
 2236     "São José (Padroeiro da Igreja Universal)"                                       => "#19-03",
 2237     "Dia Internacional para a Eliminação da Discriminação Racial"                    => "#21-03",
 2238     "Dia Universal do Teatro"                                                        => "#21-03",
 2239     "Dia Internacional da Floresta"                                                  => "#21-03",
 2240     "Dia Mundial do Meteorológico"                                                   => "#23-03",
 2241     "Dia do Cacau"                                                                   => "#26-03",
 2242     "Dia do Circo"                                                                   => "#27-03",
 2243     "Dia do Diagramador"                                                             => "#28-03",
 2244     "Dia do Revisor"                                                                 => "#28-03",
 2245     "Aniversário do Golpe Militar (1964)"                                            => "#31-03",
 2246     "Dia da Integração Nacional"                                                     => "#31-03",
 2247     "Dia da Mentira"                                                                 => "#01-04",
 2248     "Dia do Humanismo"                                                               => "#01-04",
 2249     "Dia do Propagandista"                                                           => "#02-04",
 2250     "São Francisco de Paula"                                                         => "#02-04",
 2251     "Dia Nacional do Parkinsoniano"                                                  => "#04-04",
 2252     "Dia do Corretor"                                                                => "#07-04",
 2253     "Dia do Médico Legista"                                                          => "#07-04",
 2254     "Dia Mundial do Combate ao Câncer"                                               => "#08-04",
 2255     "Dia da Natação"                                                                 => "#08-04",
 2256     "Dia Nacional do Aço"                                                            => "#09-04",
 2257     "Endoenças"                                                                      => "#09-04",
 2258     "Dia da Engenharia do Exército Brasileiro"                                       => "#10-04",
 2259     "Fundação do Exército da Salvação"                                               => "#10-04",
 2260     "Aniversário da Organização Internacional do Trabalho"                           => "#11-04",
 2261     "Dia da Intendência do Exército Brasileiro"                                      => "#12-04",
 2262     "Dia do Obstetra / da Obstetriz"                                                 => "#12-04",
 2263     "Aniversario da Loteria Esportiva (1970)"                                        => "#13-04",
 2264     "Dia do Office-Boy"                                                              => "#13-04",
 2265     "Dia Pan-Americano"                                                              => "#14-04",
 2266     "Dia da América"                                                                 => "#14-04",
 2267     "Dia Mundial do Desenhista"                                                      => "#15-04",
 2268     "Dia da Conservação do Solo"                                                     => "#15-04",
 2269     "Dia da Convenção do Solo"                                                       => "#15-04",
 2270     "Dia do Desarmamento Infantil"                                                   => "#15-04",
 2271     "Nascimento de Monteiro Lobato (Taubaté-SP)"                                     => "#18-04",
 2272     "Dia do Índio"                                                                   => "#19-04",
 2273     "Santo Expedito"                                                                 => "#19-04",
 2274     "Dia do Diplomata"                                                               => "#20-04",
 2275     "Dia da Latinidade"                                                              => "#21-04",
 2276     "Dia da Polícia Civil"                                                           => "#21-04",
 2277     "Dia Internacional da Terra"                                                     => "#21-04",
 2278     "Dia do Metalúrgico"                                                             => "#21-04",
 2279     "Fundação da Cidade de Brasília-DF (1960)"                                       => "#21-04",
 2280     "Morre Tancredo de Almeida Neves (1985)"                                         => "#21-04",
 2281     "Descobrimento do Brasil (1500)"                                                 => "#22-04",
 2282     "Dia Mundial da Terra"                                                           => "#22-04",
 2283     "Dia da Aviação de Caça"                                                         => "#22-04",
 2284     "Dia da Comunidade Luso-Brasileira"                                              => "#22-04",
 2285     "Dia da Força Aérea Brasileira"                                                  => "#22-04",
 2286     "Dia do Planeta Terra"                                                           => "#22-04",
 2287     "Dia Mundial do Escoteiro (Baden Powell Day)"                                    => "#23-04",
 2288     "Dia Mundial do Livro e do Direito Autoral"                                      => "#23-04",
 2289     "São Jorge"                                                                      => "#23-04",
 2290     "Dia do Agente de Viagem"                                                        => "#24-04",
 2291     "Dia do Contabilista"                                                            => "#25-04",
 2292     "São Marcos"                                                                     => "#25-04",
 2293     "Celebração da Primeira Missa no Brasil"                                         => "#26-04",
 2294     "Dia do Goleiro"                                                                 => "#26-04",
 2295     "Dia Nacional da Empregada Doméstica"                                            => "#27-04",
 2296     "Dia do Sacerdote"                                                               => "#27-04",
 2297     "Santa Zita"                                                                     => "#27-04",
 2298     "Dia da Educação"                                                                => "#28-04",
 2299     "Dia da Sogra"                                                                   => "#28-04",
 2300     "Dia Nacional da Mulher"                                                         => "#30-04",
 2301     "Dia da OEA (Organização dos Estados Americanos)"                                => "#30-04",
 2302     "Dia do Ferroviário"                                                             => "#30-04",
 2303     "Inauguração da Primeira Estrada de Ferro no Brasil"                             => "#30-04",
 2304     "Dia da Literatura Brasileira"                                                   => "#01-05",
 2305     "São José Operário"                                                              => "#01-05",
 2306     "Dia Nacional do Ex-Combatente"                                                  => "#02-05",
 2307     "Dia do Sertanejo"                                                               => "#03-05",
 2308     "Dia do Taquigrafo"                                                              => "#03-05",
 2309     "São Tiago"                                                                      => "#03-05",
 2310     "Dia Nacional das Comunicações"                                                  => "#05-05",
 2311     "Dia Nacional do Expedicionário"                                                 => "#05-05",
 2312     "Dia da Comunidade"                                                              => "#05-05",
 2313     "Dia das Comunicações"                                                           => "#05-05",
 2314     "Dia de Rondon"                                                                  => "#05-05",
 2315     "Dia do Pintor"                                                                  => "#05-05",
 2316     "Dia do Trabalhador Preso"                                                       => "#05-05",
 2317     "Dia do Cartógrafo"                                                              => "#06-05",
 2318     "Dia do Oftalmologista"                                                          => "#07-05",
 2319     "Dia do Silêncio"                                                                => "#07-05",
 2320     "Dia Internacional da Cruz Vermelha"                                             => "#08-05",
 2321     "Dia da Vitória (1945)"                                                          => "#08-05",
 2322     "Dia do Artista Plástico"                                                        => "#08-05",
 2323     "São Vitor"                                                                      => "#08-05",
 2324     "Término da II Guerra Mundial (1945)"                                            => "#08-05",
 2325     "Dia da Cavalaria"                                                               => "#10-05",
 2326     "Dia do Campo"                                                                   => "#10-05",
 2327     "Dia do Guia de Turismo"                                                         => "#10-05",
 2328     "Dia da Integração do Telégrafo no Brasil"                                       => "#11-05",
 2329     "Dia Mundial da Enfermeira"                                                      => "#12-05",
 2330     "São Pancrácio"                                                                  => "#12-05",
 2331     "Abolição da Escravatura, Lei Áurea (1888)"                                      => "#13-05",
 2332     "Criação da Biblioteca Nacional, Rio de Janeiro-RJ (1811)"                       => "#13-05",
 2333     "Dia da Estrada de Rodagem"                                                      => "#13-05",
 2334     "Dia da Fraternidade Brasileira"                                                 => "#13-05",
 2335     "Dia do Automóvel"                                                               => "#13-05",
 2336     "N. Sra. de Fátima"                                                              => "#13-05",
 2337     "Dia Continental do Seguro"                                                      => "#14-05",
 2338     "São Matias"                                                                     => "#14-05",
 2339     "Dia do Assistente Social"                                                       => "#15-05",
 2340     "Dia do Gerente Bancário"                                                        => "#15-05",
 2341     "Dia do Gari"                                                                    => "#16-05",
 2342     "Dia Internacional da Comunicação e Telecomunicação"                             => "#17-05",
 2343     "Dia Internacional da Comunicação Social"                                        => "#18-05",
 2344     "Dia Internacional dos Museus"                                                   => "#18-05",
 2345     "Dia dos Vidreiros"                                                              => "#18-05",
 2346     "Dia do Comissário de Menores"                                                   => "#20-05",
 2347     "Dia da Língua Nacional"                                                         => "#21-05",
 2348     "Dia do Apicultor"                                                               => "#22-05",
 2349     "Santa Rita"                                                                     => "#22-05",
 2350     "Dia da Infantaria"                                                              => "#24-05",
 2351     "Dia do Datilógrafo"                                                             => "#24-05",
 2352     "Dia do Detento"                                                                 => "#24-05",
 2353     "Dia do Telegrafista"                                                            => "#24-05",
 2354     "Dia do Vestibulando"                                                            => "#24-05",
 2355     "N. Sra. Auxiliadora"                                                            => "#24-05",
 2356     "Dia da Indústria"                                                               => "#25-05",
 2357     "Dia do Industrial"                                                              => "#25-05",
 2358     "Dia do Massagista"                                                              => "#25-05",
 2359     "Dia do Trabalhador Rural"                                                       => "#25-05",
 2360     "Dia Nacional da Mata Atlântica"                                                 => "#27-05",
 2361     "Dia do Profissional Liberal"                                                    => "#27-05",
 2362     "Dia do Estatístico"                                                             => "#29-05",
 2363     "Dia do Geógrafo"                                                                => "#29-05",
 2364     "Dia do Geólogo"                                                                 => "#30-05",
 2365     "Santa Joana d'Arc"                                                              => "#30-05",
 2366     "Dia Mundial das Comunicações Sociais"                                           => "#31-05",
 2367     "Dia do Espírito Santo"                                                          => "#31-05",
 2368     "Primeira Transmissão de TV no Brasil (1950)"                                    => "#01-06",
 2369     "Dia do Duque de Caxias"                                                         => "#01-06",
 2370     "Dia Mundial do Administrador de Pessoal"                                        => "#03-06",
 2371     "Dia Mundial do Meio Ambiente"                                                   => "#05-06",
 2372     "Dia da Ecologia"                                                                => "#05-06",
 2373     "Dia do Citricultor"                                                             => "#08-06",
 2374     "Dia Nacional da Imunização"                                                     => "#09-06",
 2375     "Dia Nacional do Pe. Anchieta"                                                   => "#09-06",
 2376     "Dia do Porteiro"                                                                => "#09-06",
 2377     "Dia do Tênis e do Tenista"                                                      => "#09-06",
 2378     "Dia da Artilharia"                                                              => "#10-06",
 2379     "Dia da Língua Portuguesa"                                                       => "#10-06",
 2380     "Dia da Raça"                                                                    => "#10-06",
 2381     "Batalha Naval do Riachuelo"                                                     => "#11-06",
 2382     "Dia da Marinha Brasileira"                                                      => "#11-06",
 2383     "Dia do Educador Sanitário"                                                      => "#11-06",
 2384     "Dia dos Namorados"                                                              => "#12-06",
 2385     "Criado o Jardim Botânico do Rio de Janeiro por D. João VI"                      => "#13-06",
 2386     "Dia do Turista"                                                                 => "#13-06",
 2387     "Santo Antônio"                                                                  => "#13-06",
 2388     "Dia Universal de Deus"                                                          => "#14-06",
 2389     "Dia do Solista"                                                                 => "#14-06",
 2390     "São Vito"                                                                       => "#15-06",
 2391     "Dia da Unidade Nacional"                                                        => "#16-06",
 2392     "Dia da Imigração Japonesa"                                                      => "#18-06",
 2393     "Dia do Químico"                                                                 => "#18-06",
 2394     "Dia do Revendedor"                                                              => "#20-06",
 2395     "Dia Nacional do Luto"                                                           => "#21-06",
 2396     "Dia Universal Olímpico"                                                         => "#21-06",
 2397     "Dia da Mídia"                                                                   => "#21-06",
 2398     "Dia do Mel"                                                                     => "#21-06",
 2399     "Dia do Migrante"                                                                => "#21-06",
 2400     "Nascimento de Machado de Assis, Rio de Janeiro-RJ (1839)"                       => "#21-06",
 2401     "Sagrado Coração de Jesus"                                                       => "#22-06",
 2402     "Imaculado Coração de Maria"                                                     => "#23-06",
 2403     "Dia Internacional do Leite"                                                     => "#24-06",
 2404     "Dia da Comunidade Britânica"                                                    => "#24-06",
 2405     "Dia das Empresas Gráficas"                                                      => "#24-06",
 2406     "Dia do Caboclo"                                                                 => "#24-06",
 2407     "Festa Junina (Feriado Escolar)"                                                 => "#24-06",
 2408     "São João Batista"                                                               => "#24-06",
 2409     "Dia do Quilo"                                                                   => "#25-06",
 2410     "Dia Nacional de Combate às Drogas"                                              => "#26-06",
 2411     "Dia Nacional do Progresso"                                                      => "#27-06",
 2412     "Dia da Revolução Espiritual"                                                    => "#27-06",
 2413     "Dia dos Artistas Líricos"                                                       => "#27-06",
 2414     "Dia da Renovação Espiritual"                                                    => "#28-06",
 2415     "Dia Internacional do Orgulho Gay"                                               => "#29-06",
 2416     "Dia da Telefonista"                                                             => "#29-06",
 2417     "Dia do Papa"                                                                    => "#29-06",
 2418     "Dia do Pescador"                                                                => "#29-06",
 2419     "São Pedro e São Paulo"                                                          => "#29-06",
 2420     "Dia do Economiário"                                                             => "#30-06",
 2421     "Dia da Vacina BCG"                                                              => "#01-07",
 2422     "Instituição do Real como Unidade Monetária (1994)"                              => "#01-07",
 2423     "Dia do Hospital"                                                                => "#02-07",
 2424     "São Tomé"                                                                       => "#03-07",
 2425     "Dia Internacional do Cooperativismo"                                            => "#04-07",
 2426     "Criação do IBGE (Instituto Brasileiro de Geografia e Estatística)"              => "#06-07",
 2427     "Santa Maria Goretti"                                                            => "#06-07",
 2428     "Dia do Panificador"                                                             => "#08-07",
 2429     "Dia do Soldado Constitucionalista"                                              => "#09-07",
 2430     "N. Sra. Mediugórie"                                                             => "#09-07",
 2431     "Promulgação da Constituição Republicana (1932)"                                 => "#09-07",
 2432     "Dia da Pizza em São Paulo"                                                      => "#10-07",
 2433     "Dia do Rondonista"                                                              => "#11-07",
 2434     "São Bento"                                                                      => "#11-07",
 2435     "Dia do Engenheiro Florestal"                                                    => "#12-07",
 2436     "Dia Mundial do Rock"                                                            => "#13-07",
 2437     "Dia do Engenheiro de Saneamento"                                                => "#13-07",
 2438     "Dia dos Cantores e Compositores Sertanejos"                                     => "#13-07",
 2439     "Dia do Propagandista de Laboratório"                                            => "#14-07",
 2440     "São Camilo de Lélis"                                                            => "#14-07",
 2441     "Dia Nacional dos Clubes"                                                        => "#15-07",
 2442     "Dia do Comerciante"                                                             => "#16-07",
 2443     "N. Sra. do Carmo"                                                               => "#16-07",
 2444     "Dia do Protetor de Florestas"                                                   => "#17-07",
 2445     "Dia da Coroação de D. Pedro"                                                    => "#18-07",
 2446     "Dia Nacional do Futebol"                                                        => "#19-07",
 2447     "Dia da Caridade"                                                                => "#19-07",
 2448     "Dia da Junta Comercial"                                                         => "#19-07",
 2449     "Dia Pan-Americano do Engenheiro"                                                => "#20-07",
 2450     "Dia do Revendedor (de Gasolina)"                                                => "#20-07",
 2451     "1ª Vez Que o Homem Pisou na Lua (1969)"                                         => "#21-07",
 2452     "Santa Madalena"                                                                 => "#22-07",
 2453     "Dia da Declaração da Maioridade de D. Pedro II (1840)"                          => "#23-07",
 2454     "Dia do Guarda Rodoviário"                                                       => "#23-07",
 2455     "Dia do Colono"                                                                  => "#25-07",
 2456     "Dia do Motorista"                                                               => "#25-07",
 2457     "São Cristóvão"                                                                  => "#25-07",
 2458     "Dia da Vovó"                                                                    => "#26-07",
 2459     "Santa Ana"                                                                      => "#26-07",
 2460     "São Joaquim"                                                                    => "#26-07",
 2461     "Dia Nacional de Prevenção de Acidentes de Trabalho"                             => "#27-07",
 2462     "Dia do Motociclista"                                                            => "#27-07",
 2463     "Santa Marta"                                                                    => "#29-07",
 2464     "São Inácio de Loyola"                                                           => "#31-07",
 2465     "Dia Nacional do Sêlo"                                                           => "#01-08",
 2466     "Dia do Tintureiro"                                                              => "#03-08",
 2467     "São João Maria Vianei"                                                          => "#04-08",
 2468     "N. Sra. das Neves"                                                              => "#05-08",
 2469     "Bom Jesus"                                                                      => "#06-08",
 2470     "São Caetano"                                                                    => "#07-08",
 2471     "Dia do Padre"                                                                   => "#08-08",
 2472     "São Lourenço"                                                                   => "#10-08",
 2473     "Dia Internacional da Logosofia"                                                 => "#11-08",
 2474     "Dia da Consciência Nacional"                                                    => "#11-08",
 2475     "Dia da Pintura"                                                                 => "#11-08",
 2476     "Dia do Advogado"                                                                => "#11-08",
 2477     "Dia do Direito"                                                                 => "#11-08",
 2478     "Dia do Garçom"                                                                  => "#11-08",
 2479     "Dia do Magistrado"                                                              => "#11-08",
 2480     "Dia Nacional das Artes"                                                         => "#12-08",
 2481     "N. Sra. das Cabeças"                                                            => "#12-08",
 2482     "Dia do Economista"                                                              => "#13-08",
 2483     "Dia do Encarcerado"                                                             => "#13-08",
 2484     "Dia da Unidade Humana"                                                          => "#14-08",
 2485     "Assunção de Nossa Senhora"                                                      => "#15-08",
 2486     "Dia da Informática"                                                             => "#15-08",
 2487     "Dia dos Solteiros"                                                              => "#15-08",
 2488     "N. Sra. da Glória"                                                              => "#15-08",
 2489     "São Roque"                                                                      => "#16-08",
 2490     "Criação do Instituto Histórico e Geográfico, Rio de Janeiro-RJ (1838)"          => "#18-08",
 2491     "Santa Helena"                                                                   => "#18-08",
 2492     "Dia Mundial da Fotografia"                                                      => "#19-08",
 2493     "Dia do Artista de Teatro"                                                       => "#19-08",
 2494     "Dia do Maçom"                                                                   => "#20-08",
 2495     "Dia do Excepcional"                                                             => "#22-08",
 2496     "Dia Internacional em Memória da Escravidão e da Abolição"                       => "#23-08",
 2497     "Dia da Injustiça"                                                               => "#23-08",
 2498     "Santa Rosa de Lima"                                                             => "#23-08",
 2499     "São Bartolomeu"                                                                 => "#24-08",
 2500     "Dia do Exército Brasileiro"                                                     => "#25-08",
 2501     "Dia do Feirante"                                                                => "#25-08",
 2502     "Dia do Soldado"                                                                 => "#25-08",
 2503     "Dia Nacional do Psicólogo"                                                      => "#27-08",
 2504     "Dia do Corretor de Imóveis"                                                     => "#27-08",
 2505     "Santa Mônica"                                                                   => "#27-08",
 2506     "Dia Nacional dos Bancários"                                                     => "#28-08",
 2507     "Dia da Avicultura"                                                              => "#28-08",
 2508     "Santo Agostinho"                                                                => "#28-08",
 2509     "Dia do Nutricionista"                                                           => "#31-08",
 2510     "São Raimundo Nonato"                                                            => "#31-08",
 2511     "Dia do Biólogo"                                                                 => "#03-09",
 2512     "Dia da Amazônia"                                                                => "#05-09",
 2513     "Dia do Oficial de Farmácia"                                                     => "#05-09",
 2514     "Dia do Alfaiate"                                                                => "#06-09",
 2515     "Natividade de Nossa Senhora"                                                    => "#08-09",
 2516     "Dia do Administrador"                                                           => "#09-09",
 2517     "Dia do Veterinário"                                                             => "#09-09",
 2518     "Dia da Cruz"                                                                    => "#14-09",
 2519     "Dia do Frevo"                                                                   => "#14-09",
 2520     "N. Sra. das Dores"                                                              => "#15-09",
 2521     "São Cipriano"                                                                   => "#16-09",
 2522     "Dia da Compreensão Mundial"                                                     => "#17-09",
 2523     "Promulgação da Constituição do Brasil (1946)"                                   => "#18-09",
 2524     "Dia do Teatro"                                                                  => "#19-09",
 2525     "São Genaro"                                                                     => "#19-09",
 2526     "Dia do Funcionário Municipal"                                                   => "#20-09",
 2527     "Dia do Gaúcho"                                                                  => "#20-09",
 2528     "Dia do Policial Civil"                                                          => "#20-09",
 2529     "Dia Nacional da Radiodifusão"                                                   => "#21-09",
 2530     "Dia da Árvore"                                                                  => "#21-09",
 2531     "Dia do Fazendeiro"                                                              => "#21-09",
 2532     "Dia do Radialista"                                                              => "#21-09",
 2533     "Dia do Radio"                                                                   => "#21-09",
 2534     "Santa Efigênia"                                                                 => "#21-09",
 2535     "São Mateus"                                                                     => "#21-09",
 2536     "Dia do Soldador"                                                                => "#23-09",
 2537     "Dia Interamericano/Internacional de Relações Públicas"                          => "#26-09",
 2538     "Dia Mundial do Turismo"                                                         => "#27-09",
 2539     "Dia do Ancião"                                                                  => "#27-09",
 2540     "Dia do Encanador"                                                               => "#27-09",
 2541     "São Cosme e Damião"                                                             => "#27-09",
 2542     "São Vicente de Paulo"                                                           => "#27-09",
 2543     "Dia da Lei do Sexagenário"                                                      => "#28-09",
 2544     "Dia da Mãe Preta"                                                               => "#28-09",
 2545     "Lei do Ventre Livre Sancionada pela Princesa Isabel (1871)"                     => "#28-09",
 2546     "Dia do Anunciante"                                                              => "#29-09",
 2547     "Dia do Professor de Educação Física"                                            => "#29-09",
 2548     "Santos Arcanjos"                                                                => "#29-09",
 2549     "São Gabriel"                                                                    => "#29-09",
 2550     "São Miguel"                                                                     => "#29-09",
 2551     "Dia Internacional da Navegação"                                                 => "#30-09",
 2552     "Dia Mundial do Tradutor"                                                        => "#30-09",
 2553     "Dia da Secretária"                                                              => "#30-09",
 2554     "São Jerônimo"                                                                   => "#30-09",
 2555     "Dia Nacional do Vereador"                                                       => "#01-10",
 2556     "Dia Pan-Americano do Vendedor"                                                  => "#01-10",
 2557     "Dia do Representante Comercial"                                                 => "#01-10",
 2558     "Dia da Esquadra"                                                                => "#01-10",
 2559     "Dia do Anjo da Guarda"                                                          => "#02-10",
 2560     "Dia das Abelhas"                                                                => "#03-10",
 2561     "Dia Mundial do Dentista"                                                        => "#03-10",
 2562     "Dia do Latino-Americano"                                                        => "#03-10",
 2563     "Dia Internacioanl dos Animais"                                                  => "#03-10",
 2564     "Dia da Ave"                                                                     => "#04-10",
 2565     "Dia da Natureza"                                                                => "#04-10",
 2566     "Dia do Barman"                                                                  => "#04-10",
 2567     "Dia do Cão"                                                                     => "#04-10",
 2568     "Dia do Poeta"                                                                   => "#04-10",
 2569     "Dia do Radio Interamericano"                                                    => "#04-10",
 2570     "São Francisco de Assis"                                                         => "#04-10",
 2571     "Dia Internacional da Ecologia"                                                  => "#04-10",
 2572     "Dia Mundial dos Animais"                                                        => "#05-10",
 2573     "Dia das Aves"                                                                   => "#05-10",
 2574     "Promulgação da Nova Constituição do Brasil (1988)"                              => "#05-10",
 2575     "São Benedito"                                                                   => "#05-10",
 2576     "Dia do Compositor"                                                              => "#07-10",
 2577     "N. Sra. do Rosário"                                                             => "#07-10",
 2578     "Dia do Nordestino"                                                              => "#08-10",
 2579     "N. Sra. de Nazaré"                                                              => "#10-10",
 2580     "Dia do Deficiente Físico"                                                       => "#11-10",
 2581     "Dia do Teatro Municipal"                                                        => "#11-10",
 2582     "Descobrimento da América (1492)"                                                => "#12-10",
 2583     "Dia da Aclamação de D. Pedro I"                                                 => "#12-10",
 2584     "Dia da Cirurgia Infantil"                                                       => "#12-10",
 2585     "Dia do Mar"                                                                     => "#12-10",
 2586     "Inauguração do Cristo Redentor Rio de Janeiro-RJ"                               => "#12-10",
 2587     "Dia da Terapia Ocupacional"                                                     => "#13-10",
 2588     "Dia do Fisioterapeuta"                                                          => "#13-10",
 2589     "Dia Nacional da Pecuária"                                                       => "#14-10",
 2590     "Dia da Normalista"                                                              => "#15-10",
 2591     "Dia do Professor"                                                               => "#15-10",
 2592     "Dia Mundial da Alimentação"                                                     => "#16-10",
 2593     "Santa Edwirges (Endividados)"                                                   => "#16-10",
 2594     "Dia da Industria Aeronáutica Brasileira"                                        => "#17-10",
 2595     "Dia do Eletricista"                                                             => "#17-10",
 2596     "Dia do Estivador"                                                               => "#18-10",
 2597     "Dia do Médico"                                                                  => "#18-10",
 2598     "Dia do Pintor (de Parede, de Carro)"                                            => "#18-10",
 2599     "São Lucas (Médicos)"                                                            => "#18-10",
 2600     "Dia do Contato"                                                                 => "#21-10",
 2601     "Dia do MacKenzie"                                                               => "#21-10",
 2602     "Comemoração do 1º Vôo de Santos Dumont pilotando o 14 Bis (1906)"               => "#23-10",
 2603     "Dia da Aviação e do Aviador"                                                    => "#23-10",
 2604     "Dia Mundial do Desenvolvimento"                                                 => "#24-10",
 2605     "Dia da Democracia"                                                              => "#25-10",
 2606     "Dia das Missões"                                                                => "#25-10",
 2607     "Dia do Dentista Brasileiro"                                                     => "#25-10",
 2608     "Dia do Sapateiro"                                                               => "#25-10",
 2609     "Dia da Universidade Católica"                                                   => "#28-10",
 2610     "Dia do Funcionário Público"                                                     => "#28-10",
 2611     "São Judas Tadeu (Causas Impossíveis)"                                           => "#28-10",
 2612     "Dia da Decoração"                                                               => "#30-10",
 2613     "Dia do Balconista"                                                              => "#30-10",
 2614     "Dia do Comerciário"                                                             => "#30-10",
 2615     "São Geraldo"                                                                    => "#30-10",
 2616     "Dia Mundial da Poupança"                                                        => "#31-10",
 2617     "Todos os Santos"                                                                => "#01-11",
 2618     "São Lázaro"                                                                     => "#02-11",
 2619     "Dia do Cabeleireiro"                                                            => "#03-11",
 2620     "Dia do Inventor"                                                                => "#04-11",
 2621     "Dia Nacional da Cultura"                                                        => "#05-11",
 2622     "Dia da Ciência"                                                                 => "#05-11",
 2623     "Dia do Cinema Brasileiro"                                                       => "#05-11",
 2624     "Dia do Radio-Amador"                                                            => "#05-11",
 2625     "Dia do Técnico em Eletrônica"                                                   => "#05-11",
 2626     "Ação Católica"                                                                  => "#07-11",
 2627     "Dia Nacional dos Tribunais de Conta"                                            => "#07-11",
 2628     "Dia Mundial do Urbanismo"                                                       => "#08-11",
 2629     "Dia do Município"                                                               => "#09-11",
 2630     "Dia do Trigo"                                                                   => "#10-11",
 2631     "Dia do Soldado Desconhecido"                                                    => "#11-11",
 2632     "Dia do Supermercado"                                                            => "#12-11",
 2633     "Aniversário do Ministério da Educação"                                          => "#14-11",
 2634     "Dia Nacional da Alfabetização"                                                  => "#14-11",
 2635     "Dia do Esporte Amador"                                                          => "#15-11",
 2636     "Santos Roque Gonzalez e Companheiros"                                           => "#19-11",
 2637     "Dia Nacional da Consciência Negra"                                              => "#20-11",
 2638     "Dia do Datiloscopista Brasileiro"                                               => "#20-11",
 2639     "Dia da Homeopatia"                                                              => "#21-11",
 2640     "Dia das Saudações"                                                              => "#21-11",
 2641     "Dia da Solidariedade com o Povo Libanês"                                        => "#22-11",
 2642     "Santa Cecília"                                                                  => "#22-11",
 2643     "Dia Nacional do Doador de Sangue"                                               => "#25-11",
 2644     "Dia da Baiana do Acarajé"                                                       => "#25-11",
 2645     "Santa Catarina"                                                                 => "#26-11",
 2646     "N. Sra. das Graças"                                                             => "#27-11",
 2647     "Dia Mundial de Ação de Graças"                                                  => "#28-11",
 2648     "Santo André (Apóstolo)"                                                         => "#30-11",
 2649     "Dia Mundial de Prevenção contra AIDS"                                           => "#01-12",
 2650     "Dia do Imigrante"                                                               => "#01-12",
 2651     "Dia do Numismata"                                                               => "#01-12",
 2652     "Dia Nacional da Astronomia"                                                     => "#02-12",
 2653     "Dia Nacional das Relações Públicas"                                             => "#02-12",
 2654     "Dia Nacional do Samba"                                                          => "#02-12",
 2655     "São Francisco Xavier"                                                           => "#03-12",
 2656     "Dia Mundial da Propaganda"                                                      => "#04-12",
 2657     "Dia Nacional do Ministério Público"                                             => "#04-12",
 2658     "Dia do Orientador Educacional"                                                  => "#04-12",
 2659     "Dia do Podólogo"                                                                => "#04-12",
 2660     "Dia do Trabalhador em Minas de Carvão"                                          => "#04-12",
 2661     "Santa Bárbara"                                                                  => "#04-12",
 2662     "Dia da Fundação da Associação Comercial de São Paulo (1894)"                    => "#07-12",
 2663     "UNESCO Declara Brasília Patrimônio Cultural da Humanidade (1987)"               => "#07-12",
 2664     "Aniversário da Avenida Paulista São Paulo-SP (1891)"                            => "#08-12",
 2665     "Dia Nacional da Família"                                                        => "#08-12",
 2666     "Imaculada Conceição"                                                            => "#08-12",
 2667     "Dia da Justiça"                                                                 => "#08-12",
 2668     "Dia do Cronista Esportivo"                                                      => "#08-12",
 2669     "Dia da Criança Defeituosa"                                                      => "#09-12",
 2670     "Dia do Alcoólatra Recuperado"                                                   => "#09-12",
 2671     "Dia do Fonoáudiologo"                                                           => "#09-12",
 2672     "Declaração Universal dos Direitos Humanos"                                      => "#10-12",
 2673     "Dia do Palhaço"                                                                 => "#10-12",
 2674     "Dia do Arquiteto"                                                               => "#11-12",
 2675     "Dia do Engenheiro"                                                              => "#11-12",
 2676     "Dia do Tango"                                                                   => "#11-12",
 2677     "N. Sra. de Guadalupe"                                                           => "#12-12",
 2678     "Dia do Avaliador"                                                               => "#13-12",
 2679     "Dia do Cego"                                                                    => "#13-12",
 2680     "Dia do Marinheiro"                                                              => "#13-12",
 2681     "Dia do Ótico"                                                                   => "#13-12",
 2682     "Santa Luzia"                                                                    => "#13-12",
 2683     "Dia do Reservista"                                                              => "#16-12",
 2684     "Dia do Mecânico"                                                                => "#20-12",
 2685     "Dia do Vizinho"                                                                 => "#23-12",
 2686     "Dia do Órfão"                                                                   => "#24-12",
 2687     "Dia da Lembrança"                                                               => "#26-12",
 2688     "Santo Estevão"                                                                  => "#26-12",
 2689     "Festa da Sagrada Família"                                                       => "#27-12",
 2690     "Dia do Salva-Vidas"                                                             => "#28-12",
 2691     "São Silvestre (Reveillon)"                                                      => "#31-12"
 2692 };
 2693 
 2694 $Profiles->{'BR-AC'} = # Acre
 2695 {
 2696     %{$Profiles->{'BR'}}
 2697 };
 2698 $Profiles->{'BR-AL'} = # Alagoas
 2699 {
 2700     %{$Profiles->{'BR'}}
 2701 };
 2702 $Profiles->{'BR-AP'} = # Amapá
 2703 {
 2704     %{$Profiles->{'BR'}}
 2705 };
 2706 $Profiles->{'BR-AM'} = # Amazonas
 2707 {
 2708     %{$Profiles->{'BR'}}
 2709 };
 2710 $Profiles->{'BR-BA'} = # Bahia
 2711 {
 2712     %{$Profiles->{'BR'}}
 2713 };
 2714 $Profiles->{'BR-CE'} = # Ceará
 2715 {
 2716     %{$Profiles->{'BR'}}
 2717 };
 2718 $Profiles->{'BR-DF'} = # Distrito Federal
 2719 {
 2720     %{$Profiles->{'BR'}},
 2721     "Fundação da Cidade de Brasília-DF (1960)"                                       => "#21-04"  # feriado em Brasília ?
 2722 };
 2723 $Profiles->{'BR-ES'} = # Espírito Santo
 2724 {
 2725     %{$Profiles->{'BR'}},
 2726     "N. Sra. da Penha"                                                               => "#24-04", # feriado em Vitória e Vila Velha
 2727     "Dia da Cidade de Vitória"                                                       => "#08-09", # feriado só em Vitória
 2728     "Dia da Colonização do Solo Espíritosantense"                                    => "#23-05"  # feriado só em Vila Velha
 2729 };
 2730 $Profiles->{'BR-GO'} = # Goiás
 2731 {
 2732     %{$Profiles->{'BR'}}
 2733 };
 2734 $Profiles->{'BR-MA'} = # Maranhão
 2735 {
 2736     %{$Profiles->{'BR'}}
 2737 };
 2738 $Profiles->{'BR-MT'} = # Mato Grosso
 2739 {
 2740     %{$Profiles->{'BR'}}
 2741 };
 2742 $Profiles->{'BR-MS'} = # Mato Grosso do Sul
 2743 {
 2744     %{$Profiles->{'BR'}}
 2745 };
 2746 $Profiles->{'BR-MG'} = # Minas Gerais
 2747 {
 2748     %{$Profiles->{'BR'}}
 2749 };
 2750 $Profiles->{'BR-PR'} = # Paraná
 2751 {
 2752     %{$Profiles->{'BR'}}
 2753 };
 2754 $Profiles->{'BR-PB'} = # Paraíba
 2755 {
 2756     %{$Profiles->{'BR'}}
 2757 };
 2758 $Profiles->{'BR-PA'} = # Pará
 2759 {
 2760     %{$Profiles->{'BR'}}
 2761 };
 2762 $Profiles->{'BR-PE'} = # Pernambuco
 2763 {
 2764     %{$Profiles->{'BR'}},
 2765     "Fundação da Cidade de Recife (1537)"                                            => "#12-03"  # feriado em Recife ?
 2766 };
 2767 $Profiles->{'BR-PI'} = # Piauí
 2768 {
 2769     %{$Profiles->{'BR'}}
 2770 };
 2771 $Profiles->{'BR-RN'} = # Rio Grande do Norte
 2772 {
 2773     %{$Profiles->{'BR'}}
 2774 };
 2775 $Profiles->{'BR-RS'} = # Rio Grande do Sul
 2776 {
 2777     %{$Profiles->{'BR'}}
 2778 };
 2779 $Profiles->{'BR-RJ'} = # Rio de Janeiro
 2780 {
 2781     %{$Profiles->{'BR'}},
 2782     "São Sebastião (Padroeiro da Cidade do Rio de Janeiro)"                          => "#20-01", # feriado no Rio de Janeiro
 2783     "Fundação da Cidade do Rio de Janeiro (1565)"                                    => "#01-03"  # feriado no Rio de Janeiro
 2784 };
 2785 $Profiles->{'BR-RO'} = # Rondônia
 2786 {
 2787     %{$Profiles->{'BR'}},
 2788     "Dia da Criação do Estado de Rondônia-RO"                                        => "#04-01", # feriado ?
 2789     "Dia de Rondon"                                                                  => "#05-05", # feriado ?
 2790     "Dia do Rondonista"                                                              => "#11-07"  # feriado ?
 2791 };
 2792 $Profiles->{'BR-RR'} = # Roraima
 2793 {
 2794     %{$Profiles->{'BR'}}
 2795 };
 2796 $Profiles->{'BR-SC'} = # Santa Catarina
 2797 {
 2798     %{$Profiles->{'BR'}}
 2799 };
 2800 $Profiles->{'BR-SE'} = # Sergipe
 2801 {
 2802     %{$Profiles->{'BR'}}
 2803 };
 2804 $Profiles->{'BR-SP'} = # São Paulo
 2805 {
 2806     %{$Profiles->{'BR'}},
 2807     "Fundação da Cidade de São Paulo (1554)"                                         => "#25-01", # feriado em São Paulo
 2808 };
 2809 $Profiles->{'BR-TO'} = # Tocantins
 2810 {
 2811     %{$Profiles->{'BR'}}
 2812 };
 2813 
 2814 # Thanks to:
 2815 # Daniel Crown <daniel@mailgratis.com.ar>
 2816 
 2817 $Profiles->{'AR'} = # Argentina
 2818 {
 2819     "Año Nuevo"                       => "01-01",
 2820     "Día de los Reyes (Epifanía)"     => "06-01",
 2821     "Día de Malvinas"                 => "02-04",
 2822     "Jueves Santo"                    => "-3",
 2823     "Viernes Santo"                   => "-2",
 2824     "Domingo de Páscuas"              => "+0",
 2825     "Lunes de Páscuas"                => "+1",
 2826     "Día del Trabajo"                 => "01-05",
 2827     "Revolución de Mayo"              => "25-05",
 2828     "Soberanía de las Islas Malvinas" => "10-06",
 2829     "Día del Padre"                   => "3/Sun/Jun",
 2830     "Día de la Bandera"               => "20-06",
 2831     "Día del Niño"                    => "03-07",
 2832     "Día de la Independencia"         => "09-07",
 2833     "Día de Eva Peron"                => "26-07",
 2834     "La Asunción"                     => "15-08",
 2835     "Día de San Martin"               => "17-08",
 2836     "Muerte de San Martin"            => "18-08",
 2837     "Día de la Raza"                  => "12-10",
 2838     "Día de la Madre"                 => "3/Sun/Oct",
 2839     "Día de Todos los Santos"         => "01-11",
 2840     "Inmaculada Concepción"           => "08-12",
 2841     "Navidad"                         => "25-12"
 2842 };
 2843 
 2844 # Thanks to:
 2845 # Jabu Virginia Duma, Giant's Castle Lodge,
 2846 # Drakensberg, 3310 Estcourt, KwaZulu-Natal
 2847 # Dirk Swart <dirk@clickshare.com> <dirk@tristar.co.za>
 2848 # http://www.gov.za/sa_overview/holidays.htm
 2849 # http://www.gov.za/events/previous/y2kholidays.htm
 2850 # Hilda de Jager <Hildadj@gcis.pwv.gov.za>
 2851 # Hennie Meyer <Henniem@dbs1.pwv.gov.za>
 2852 
 2853 $Profiles->{'ZA'} = # South Africa
 2854 {
 2855     "Special Y2K Holiday #1"    => \&ZA_Y2K_1,
 2856     "Special Y2K Holiday #2"    => \&ZA_Y2K_2,
 2857     "Special Y2K Holiday #3"    => \&ZA_Y2K_3,
 2858     "New Year's Day"            => \&ZA_New_Year,
 2859     "Human Rights Day"          => \&ZA_Human_Rights,
 2860     "Good Friday"               => "-2",
 2861     "Easter Sunday"             => "+0",
 2862     "Family Day"                => "+1",
 2863     "Freedom Day"               => \&ZA_Freedom,
 2864     "Workers Day"               => \&ZA_Workers,
 2865     "Youth Day (Soweto Day)"    => \&ZA_Youth,
 2866     "National Women's Day"      => \&ZA_Women,
 2867     "Heritage Day"              => \&ZA_Heritage,
 2868     "Day of Reconciliation"     => \&ZA_Reconciliation,
 2869     "Christmas"                 => \&ZA_Christmas,
 2870     "Day of Goodwill"           => \&ZA_Goodwill
 2871 };
 2872 
 2873 sub ZA_Y2K_1
 2874 {
 2875     my($year,$label) = @_;
 2876     if ($year == 1999) { return(1999,12,31); }
 2877     else               { return(); }
 2878 }
 2879 sub ZA_Y2K_2
 2880 {
 2881     my($year,$label) = @_;
 2882     if ($year == 2000) { return(2000,1,2); }
 2883     else               { return(); }
 2884 }
 2885 sub ZA_Y2K_3
 2886 {
 2887     my($year,$label) = @_;
 2888     if ($year == 2000) { return(2000,1,3); }
 2889     else               { return(); }
 2890 }
 2891 sub ZA_New_Year
 2892 {
 2893     my($year,$label) = @_;
 2894     return( &Sunday_to_Monday($year,1,1) );
 2895 }
 2896 sub ZA_Human_Rights
 2897 {
 2898     my($year,$label) = @_;
 2899     return( &Sunday_to_Monday($year,3,21) );
 2900 }
 2901 sub ZA_Freedom
 2902 {
 2903     my($year,$label) = @_;
 2904     return( &Sunday_to_Monday($year,4,27) );
 2905 }
 2906 sub ZA_Workers
 2907 {
 2908     my($year,$label) = @_;
 2909     return( &Sunday_to_Monday($year,5,1) );
 2910 }
 2911 sub ZA_Youth
 2912 {
 2913     my($year,$label) = @_;
 2914     return( &Sunday_to_Monday($year,6,16) );
 2915 }
 2916 sub ZA_Women
 2917 {
 2918     my($year,$label) = @_;
 2919     return( &Sunday_to_Monday($year,8,9) );
 2920 }
 2921 sub ZA_Heritage
 2922 {
 2923     my($year,$label) = @_;
 2924     return( &Sunday_to_Monday($year,9,24) );
 2925 }
 2926 sub ZA_Reconciliation
 2927 {
 2928     my($year,$label) = @_;
 2929     return( &Sunday_to_Monday($year,12,16) );
 2930 }
 2931 sub ZA_Christmas
 2932 {
 2933     my($year,$label) = @_;
 2934     return( &Sunday_to_Monday($year,12,25) );
 2935 }
 2936 sub ZA_Goodwill
 2937 {
 2938     my($year,$label) = @_;
 2939     return( &Sunday_to_Monday($year,12,26) );
 2940 }
 2941 
 2942 $Profiles->{'ZA-WC'} =  # Western Cape
 2943 {
 2944     %{$Profiles->{'ZA'}}
 2945 };
 2946 $Profiles->{'ZA-EC'} =  # Eastern Cape
 2947 {
 2948     %{$Profiles->{'ZA'}}
 2949 };
 2950 $Profiles->{'ZA-NC'} =  # Northern Cape
 2951 {
 2952     %{$Profiles->{'ZA'}}
 2953 };
 2954 $Profiles->{'ZA-FS'} =  # Free State
 2955 {
 2956     %{$Profiles->{'ZA'}}
 2957 };
 2958 $Profiles->{'ZA-NW'} =  # North West
 2959 {
 2960     %{$Profiles->{'ZA'}}
 2961 };
 2962 $Profiles->{'ZA-GA'} =  # Gauteng
 2963 {
 2964     %{$Profiles->{'ZA'}}
 2965 };
 2966 $Profiles->{'ZA-NP'} =  # Northern Province
 2967 {
 2968     %{$Profiles->{'ZA'}}
 2969 };
 2970 $Profiles->{'ZA-MP'} =  # Mpumalanga
 2971 {
 2972     %{$Profiles->{'ZA'}}
 2973 };
 2974 $Profiles->{'ZA-KZN'} = # KwaZulu-Natal
 2975 {
 2976     %{$Profiles->{'ZA'}}
 2977 };
 2978 
 2979 $Profiles->{'sdm'} = # software design & management AG
 2980 {
 2981     "Heiligabend"               => ":24.12.",
 2982     "Sylvester"                 => ":31.12."
 2983 };
 2984 
 2985 $Profiles->{'sdm-MUC'} = { %{$Profiles->{'DE-BY'}}, %{$Profiles->{'sdm'}} };
 2986 $Profiles->{'sdm-STG'} = { %{$Profiles->{'DE-BW'}}, %{$Profiles->{'sdm'}} };
 2987 $Profiles->{'sdm-FFM'} = { %{$Profiles->{'DE-HE'}}, %{$Profiles->{'sdm'}} };
 2988 $Profiles->{'sdm-BON'} = { %{$Profiles->{'DE-NW'}}, %{$Profiles->{'sdm'}} };
 2989 $Profiles->{'sdm-CGN'} = { %{$Profiles->{'DE-NW'}}, %{$Profiles->{'sdm'}} };
 2990 $Profiles->{'sdm-RAT'} = { %{$Profiles->{'DE-NW'}}, %{$Profiles->{'sdm'}} };
 2991 $Profiles->{'sdm-HAN'} = { %{$Profiles->{'DE-NI'}}, %{$Profiles->{'sdm'}} };
 2992 $Profiles->{'sdm-HH'}  = { %{$Profiles->{'DE-HH'}}, %{$Profiles->{'sdm'}} };
 2993 $Profiles->{'sdm-BLN'} = { %{$Profiles->{'DE-BE'}}, %{$Profiles->{'sdm'}} };
 2994 $Profiles->{'sdm-DET'} = { %{$Profiles->{'US-MI'}}, %{$Profiles->{'sdm'}} };
 2995 $Profiles->{'sdm-ZRH'} = { %{$Profiles->{'CH-DE'}}, %{$Profiles->{'sdm'}} };
 2996 
 2997 1;
 2998 
 2999 __END__
 3000