home *** CD-ROM | disk | FTP | other *** search
/ PC Professionell 2004 December / PCpro_2004_12.ISO / files / webserver / tsw / TSW_3.4.0.exe / Apache2 / perl / Profiles.pm < prev    next >
Encoding:
Perl POD Document  |  2002-09-29  |  134.0 KB  |  2,920 lines

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