+$opts{'holidays'} = { # %{$Profiles->{'US-TX'}},
+ "Martin Luther King Day" => "3/Mon/Jan",
+ "Good Friday" => "-2",
+ "Spring Break Monday" => \&Spring_Break,
+ "Spring Break Tuesday" => \&Spring_Break,
+ "Spring Break Wednesday" => \&Spring_Break,
+ "Spring Break Thursday" => \&Spring_Break,
+ "Spring Break Friday" => \&Spring_Break,
+ "Spring Break Saturday" => \&Spring_Break,
+ "Fiesta Holiday" => "4/Fri/Apr",
+ "Memorial Day" => "5/Mon/May",
+ "Independence Day" => \&US_Independence,
+ "Labor Day" => \&US_Labor,
+ "Columbus Day" => "2/Mon/Oct",
+ "Thanksgiving Day" => "4/Thu/Nov",
+ "Thanksgiving Friday" => \&Thanksgiving_Friday,
+};
+
+sub Spring_Break {
+ my($year,$label) = @_;
+ $label =~ s/^Spring Break //;
+ return( Add_Delta_Days(
+ Nth_Weekday_of_Month_Year($year,1,1,1),
+ 7*(11-1) # This is for the 11th Monday of the year
+ +Decode_Day_of_Week($label)-1) );
+}
+
+sub Thanksgiving_Friday {
+ my($year,$label) = @_;
+ return( Add_Delta_Days(Nth_Weekday_of_Month_Year($year,11,4,4), 1) );
+}
+sub US_Independence # Fourth of July
+{
+ my($year,$label) = @_;
+ return( &Date::Calendar::Profiles::Nearest_Workday($year,7,4) );
+}
+sub US_Labor # First Monday after the first Sunday in September
+{
+ my($year,$label) = @_;
+ return( Add_Delta_Days(
+ Nth_Weekday_of_Month_Year($year,9,7,1), +1) );
+}
+