[Date Prev][Date Next][Subject Prev][Subject Next][ Date Index][ Subject Index]

U2 Holidays routine - Canada module



This will be included in the next release of U2, but for those who
might enjoy a sneak preview, here it is. To add this update to your
U2 file, DeFine the block of code below, command DECODE,
then DeFine the result in its entirety and command ADD2U2.
(The new frames supersede existing frames HOLIDAYS and EASTER.)

There is no change to the U.S. holidays listing; if that's all you
need, you can skip this. The update adds the ability to list
Canadian holidays, on the fly, with HOLIDAYS CA, or
HOLIDAYS CA,yyyy, when you want to specify a year other
than the current year; e.g., HOLIDAYS ca,2008. You can
also make Canada the *default* holiday listing by adding the
following two lines to XYWWWEB.REG (the logical place is in the
[Identity] stanza, but anywhere in the file will do):

Country_Code=ca
Country_Name=Canada

The update includes a small but critical revision to frame EASTER,
which calculates that date for any year (Gregorian). The Canadian
listing won't work without it.

HOLIDAYS is now modular and will accommodate additional national
holiday sets. "All" you need to do is write a frame called HOL.xx
(substituting for "xx" the two-character country code of the country
in question), which calculates the dates. The included frames
HOL.US and HOL.CA provide many examples of how to translate rules
such as "the fourth Thursday in November" or "the Monday preceding
May 25" into XPL, but be warned that it's not a cookbook operation,
especially when the list is constructed around moveable dates such
as Easter. (Only when I tried my hand at the Canada frame did I
realize how flippant was my suggestion to Maben the other day that
he simply plug in the Canadian holidays using the U.S. template.)
My time and energy are limited, but I'll be glad to lend a hand if I
can.

Have fun!

XPLeNCODE v2.0
b-gin [UNTITLED]
{{;5Easter*}} Calculate Easter date for any Gregorian year [C
LD rev.7/31/07][cr|lf]{002}{<}SX01,{<}IS50{>}{>}{<}IF{<}VA|01
{>}<1!{<}VA{021}01{>}<1{>}{<}SX01,{<}VA$DAyyy{>}{>}{<}EI{>}{<
}IF{<}PV01{>}<1583{>}{<}PRYear must be after 1582{>}{<}EX{>}{
<}EI{>};*; 01=Y[cr|lf]{<}SX02,@int({<}PV01{>}/100){>};*; 02=C
 | C=Y/100[cr|lf]{<}SX03,{<}PV01{>}-19*@int({<}PV01{>}/19){>}
;*; 03=N | N=Y-19*(Y/19)[cr|lf]{<}SX04,@int(({<}PV02{>}-17)/2
5){>};*; 04=K | K=(C-17)/25[cr|lf]{<}SX05,{<}PV02{>}-@int({<}
PV02{>}/4)-@int(({<}PV02{>}-{<}PV04{>})/3)+19*{<}PV03{>}+15{>
};*; 05=I | I=C-C/4-(C-K)/3+19*N+15[cr|lf]{<}SX05,{<}PV05{>}-
30*@int({<}PV05{>}/30){>};*; I=I-30*(I/30)[cr|lf]{<}SX05,{<}P
V05{>}-@int({<}PV05{>}/28)*(1-@int({<}PV05{>}/28))*@int(29/({
<}PV05{>}+1)*@int((21-{<}PV03{>})/11){>};*; I=I-(I/28)*(1 -(I
/28)*(29/(I+1))*((21-N)/11))[cr|lf]{<}SX06,{<}PV01{>}+@int({<
}PV01{>}/4)+{<}PV05{>}+2-{<}PV02{>}+@int({<}PV02{>}/4){>};*;{032}
06=J | J=Y+Y/4+I+2-C+C/4[cr|lf]{<}SX06,{<}PV06{>}-7*@int({<}P
V06{>}/7){>};*; J=J-7*(J/7)[cr|lf]{<}SX07,{<}PV05{>}-{<}PV06{
{062}}{>};*; 07=L | L=I-J[cr|lf]{<}SX08,3+@int(({<}PV07{>}+40)/44
){>};*; 08=M | M=3+(L+40)/44[cr|lf]{<}SX09,{<}PV07{>}+28-31*@
int({<}PV08{>}/4){>};*; 09=D | D=L+28-31*(M/4)[cr|lf]{<}SX01,
{<}IS08{>}+"/"+{<}IS09{>}+"/"+{<}IS01{>}{>}{<}IF"/"{238}{<}VA
$FR{>}<0{>}{<}PR@01{>}{<}EI{>}{002}[cr|lf][cr|lf]- - -[cr|lf]
{{;5Holidays}} List national holidays for any year (parent fr
ame) [CLD rev.8/1/07][cr|lf]{002}[XH_][BX_]es 1[Q2_]{<}IF{<}V
A$WS{>}>0{>}{<}IF{<}VA$WA{>}<1{>}{<}PRNo window{>}{<}EX{>}{<}
EI{>}[BX_]window n[Q2_]{<}EI{>}[BX_]ne/9[Q2_]{<}PRWorking...{
{062}};*;[cr|lf];*;[cr|lf]{<}IF{<}VA@50{>}{240}","{>}{<}SX59,{<}V
A@50,1{>}{>}{<}SX60,@upr({<}IS59{>}){>}{<}SX50,{<}VA@50,2{>}{
{062}}{<}EI{>}{<}I
F{<}VA{021}50{>}<1{>}{<}SX59,{<}VA@50{>}{>}{<}SX60,@upr({<}IS
59{>}){>}{<}SX50,{<}VA$DAyyyy{>}{>}{<}EI{>};*;[cr|lf]{<}LBa{>
}{<}IF{<}VA|59{>}<1{>};*;[cr|lf]{<}SV99,Country_Code{>}[JM_]2
{046}RegData[Q2_]{<}SX59,{<}IS99{>}{>};*;[cr|lf]{<}IF{<}VA|59{>}<
1{>}{<}SV59,us{>}{<}EI{>}{<}SX60,@upr({<}IS59{>}){>};*;[cr|lf
]{<}SV99,Country_Name{>}[JM_]2.RegData[Q2_];*;[cr|lf]{<}IF{<}
VA|99{>}>0{>}{<}SX60,{<}IS99{>}{>}{<}EI{>}{<}EI{>};*;[cr|lf]{
<}IF{<}VA|50{>}<1{>}{<}SX50,{<}VA$DAyyyy{>}{>}{<}GLa{>}{<}EI{
{062}};*;[cr|lf];*;[cr|lf]{<}SX61,{<}VA@50{>}{>}{<}SX50,{<}IS61{>
}+" Holidays and Observances ("+{<}IS60{>}+")"{>}{<}SX62,{<}V
A|50{>}{>}{<}SV63,{>}{<}CUb,62{>}{<}SX63,{<}IS63{>}+"-"{>}{<}
LBb{>}{<}SX50,"{<}UFSTANDARD{>}{<}SZ12PT,12PT{>}{<}LM5DI{>}{<
}RM{>}{<}IP{>}{<}OF{>}{<}RT1{>}{<}TS25DI{>}{<}MDBO{>}"+{<}IS5
0{>}+"[cr|lf]"+{<}IS63{>}+"{<}MDNM{>}[cr|lf]"{>}{<}GT50{>}{<}
SU62,{<}SX50,{<}IS63{>}+"/"+{<}IS61{>}{>}[JM_]2.dow/nv[Q2_]{<
}SX63,{<}IS64{>}+"{tab}"+{<}IS50{>}+", "+{<}IS65{>}{>}{>}{<}S
U66,{<}SX50,{<}IS63{>}+"/"+{<}IS61{>}{>}[JM_]2.nthDay[Q2_]{<}
SX67,"{<}VA@50|"+{<}IS68{>}+"{>}"{>}{<}SX50,{<}PV67{>}{>}{<}S
X63,{<}IS64{>}+"{tab}"+{<}IS65{>}+" "+{<}IS50{>}{>}{>}{<}SX68
,2{>};*;[cr|lf];*;[cr|lf]{<}SU69,{<}IF{<}PV61{>}>1965{>}{<}SV
64,- Daylight Saving Time begins{>}{<}SV63,1,Su,4{>}{<}SV65,A
pril{>}{<}IF{<}PV61{>}>2006{>}{<}SV63,2,Su,3{>}{<}SV65,March{
{062}}{<}EI{>}{<}SX65,"Sunday, "+{<}IS65{>}{>}{<}IF{<}PV61{>}<198
7{>}{<}SX68,3{>}{<}EI{>}{<}GT66{>}{<}SX68,2{>}{<}SX63,"{<}MDI
T{>}"+{<}IS63{>}+" -{<}MDNM{>}"{>}{<}GT63{>}[255+048+068]{<}E
I{>}{>};*;[cr|lf];*;[cr|lf][JM_]2.hol.{<}PV59{>}[Q2_]{002}[cr
|lf][cr|lf]{{;5hol.us}} Ho
lidays - U.S.A. [CLD rev.7/31/07][cr|lf]{002}{<}SV63,1/1{>}{<
}SV64,New Year's Day{>}{<}SV65,January 1{>}{<}GT62{>}{<}IF{<}
IS50{>}{240}"Sa"&{<}PV61{>}>1970{>}{<}SX70,{<}PV61{>}-1{>}{<}
SX63,{<}IS64{>}+" obs.{tab}Friday, December 31, "+{<}IS70{>}+
"[cr|lf]"+{<}IS63{>}{>}{<}EI{>}{<}IF{<}IS50{>}{240}"Su"&{<}PV
61{>}>1970{>}{<}SX63,{<}IS63{>}+"[cr|lf]"+{<}IS64{>}+" obs.{t
ab}Monday, January 2"{>}{<}EI{>}{<}GT63{>}[255+048+068];*;[cr
|lf];*;[cr|lf]{<}IF{<}PV61{>}>1985{>}{<}SV63,1/15{>}{<}SV64,M
artin Luther King{>}{<}SV65,January 15{>}{<}GT62{>}{<}GT63{>}
[255+048+068]{<}IF"Mo"{238}{<}IS50{>}<0{>}{<}SV63,3,Mo,1{>}{<
}SX64,{<}IS64{>}+" obs."{>}{<}SV65,Monday, January{>}{<}GT66{
{062}}{<}GT63{>}[255+048+068]{<}EI{>}{<}EI{>};*;[cr|lf];*;[cr|lf]
{<}IF{<}PV61{>}>1936{>}{<}SX63,({<}PV61{>}-1)/4{>}{<}SX63,{<}
IS63{>}{>}{<}IF@siz({<}VA@63.2{>})<1{>}{<}SV63,1/20{>}{<}SV64
,Inauguration Day{>}{<}SV65,January 20{>}{<}GT62{>}{<}GT63{>}
[255+048+068]{<}EI{>}{<}EI{>}{<}SX61,{<}IS61{>}{>};*;[cr|lf];
*;[cr|lf]{<}IF{<}PV61{>}>1864{>}{<}SV63,2/12{>}{<}SV64,Abraha
m Lincoln{>}{<}SV65,February 12{>}{<}GT62{>}{<}GT63{>}[255+04
8+068]{<}EI{>};*;[cr|lf];*;[cr|lf]{<}SV63,2/14{>}{<}SV64,Vale
ntine's Day{>}{<}SV65,February 14{>}{<}GT62{>}{<}GT63{>}[255+
048+068];*;[cr|lf];*;[cr|lf]{<}IF{<}PV61{>}>1970{>}{<}SV63,3,
Mo,2{>}{<}SV64,George Washington obs.{>}{<}SV65,Monday, Febru
ary{>}{<}GT66{>}{<}GT63{>}[255+048+068]{<}EI{>};*;[cr|lf];*;[
cr|lf]{<}IF{<}PV61{>}>1795{>}{<}SV63,2/22{>}{<}SV64,George Wa
shington{>}{<}SV65,February 22{>}{<}GT62{>}{<}GT63{>}[255+048
+068]{<}EI{>};*;[cr|lf];*;[cr|lf]{<}IF{<}PV61{>}<1934&{<}PV61
{>}>1788{>}{<}SX63,({<}PV61{>}-1)/4{>}{<}SX63,{<}IS63{>}{>}{<
}IF@siz({<}VA@63.2{>}
)<1{>}{<}SV63,3/4{>}{<}SV64,Inauguration Day{>}{<}SV65,March{032}
4{>}{<}GT62{>}{<}GT63{>}[255+048+068]{<}EI{>}{<}EI{>};*;[cr|l
f];*;[cr|lf]{<}IF{<}PV61{>}>1965{>}{<}SV63,1,Su,4{>}{<}SV64,-
 Daylight Saving Time begins{>}{<}SV65,Sunday, April{>}{<}IF{
<}PV61{>}>2006{>}{<}SV63,2,Su,3{>}{<}SV65,Sunday, March{>}{<}
EI{>}{<}IF{<}PV61{>}<1987{>}{<}SX68,3{>}{<}EI{>}{<}GT66{>}{<}
SX68,2{>}{<}SX63,"{<}MDIT{>}"+{<}IS63{>}+" -{<}MDNM{>}"{>}{<}
GT63{>}[255+048+068]{<}EI{>};*;[cr|lf];*;[cr|lf]{<}IF{<}PV61{
{062}}>1913{>}{<}SV63,2,Su,5{>}{<}SV64,Mother's Day{>}{<}SV65,Sun
day, May{>}{<}GT66{>}{<}GT63{>}[255+048+068]{<}EI{>};*;[cr|lf
];*;[cr|lf]{<}IF{<}PV61{>}>1867{>}{<}SX50,0{>}{<}SV63,Memoria
l Day{>}{<}IF{<}PV61{>}<1887{>}{<}SV63,Decoration Day{>}{<}EI
{>}{<}IF{<}PV61{>}>1970{>}{<}SX50,"1,Mo,5/"+{<}IS61{>}{>}[JM_
]2.nthDay[Q2_]{<}SX50,{<}VA@50|3{>}{>}{<}SX70,{<}IS63{>}{>}{<
}IF{<}PV50{>}<31{>}{<}SX70,{<}IS63{>}+" obs."{>}{<}EI{>}{<}SX
70,{<}IS70{>}+"{tab}Monday, May "+{<}IS50{>}+"[cr|lf]"{>}{<}G
T70{>}{<}EI{>}{<}IF{<}PV50{>}<31!{<}PV61{>}<1971{>}{<}SX50,"5
/31/"+{<}IS61{>}{>}[JM_]2.dow/nv[Q2_]{<}SX63,{<}IS63{>}+"{tab
}"+{<}IS50{>}+", May 31"{>}{<}GT63{>}[255+048+068]{<}SV70,{>}
{<}EI{>}{<}EI{>};*;[cr|lf];*;[cr|lf]{<}IF{<}PV61{>}>1949{>}{<
}SV63,6/14{>}{<}SV64,Flag Day{>}{<}SV65,June 14{>}{<}GT62{>}{
<}GT63{>}[255+048+068]{<}EI{>};*;[cr|lf];*;[cr|lf]{<}IF{<}PV6
1{>}>1913{>}{<}SV63,3,Su,6{>}{<}SV64,Father's Day{>}{<}SV65,S
unday, June{>}{<}GT66{>}{<}GT63{>}[255+048+068]{<}EI{>};*;[cr
|lf];*;[cr|lf]{<}IF{<}PV61{>}>1776{>}{<}SV63,7/4{>}{<}SV64,In
dependence Day{>}{<}SV65,July 4{>}{<}GT62{>}{<}IF{<}IS50{>}{2
40}"Sa"&{<}PV61{>}>1970{>}{<}SX63,{<}IS64{>}+" obs.{tab}
Friday, July 3[cr|lf]"+{<}IS63{>}{>}{<}EI{>}{<}GT63{>}[255+04
8+068]{<}EI{>};*;[cr|lf];*;[cr|lf]{<}IF{<}PV61{>}>1881{>}{<}S
V64,Labor Day{>}{<}IF{<}PV61{>}<1884&{<}PV61{>}>1881{>}{<}SX5
0,"9/5/"+{<}IS61{>}{>}[JM_]2.dow/nv[Q2_]{<}SX63,{<}IS64{>}+"{
tab}"+{<}IS50{>}+", September 5"{>}{<}GLa{>}{<}EI{>}{<}SV63,1
,Mo,9{>}{<}SV65,Monday, September{>}{<}GT66{>}{<}LBa{>}{<}GT6
3{>}[255+048+068]{<}EI{>};*;[cr|lf];*;[cr|lf]{<}IF{<}PV61{>}>
1791{>}{<}SV63,10/12{>}{<}SV64,Columbus Day{>}{<}SV65,October
 12{>}{<}GT62{>}{<}SX70,{<}IS63{>}{>}{<}IF{<}PV61{>}>1970&"Mo
"{238}{<}IS50{>}<0{>}{<}SV63,2,Mo,10{>}{<}SX64,{<}IS64{>}+" o
bs."{>}{<}SV65,Monday, October{>}{<}GT66{>}{<}IF{<}PV50{>}<12
{>}{<}SX50,{<}IS63{>}{>}{<}SX63,{<}IS70{>}{>}{<}SX70,{<}IS50{
{062}}{>}{<}EI{>}{<}SX63,{<}IS70{>}+"[cr|lf]"+{<}IS63{>}{>}{<}EI{
{062}}{<}GT63{>}[255+048+068]{<}EI{>};*;[cr|lf];*;[cr|lf]{<}IF{<}
PV61{>}>1965&{<}PV61{>}<2007{>}{<}SV63,1,Su,10{>}{<}SV64,- St
andard Time resumes{>}{<}SV65,Sunday, October{>}{<}SX68,3{>}{
<}GT66{>}{<}SX63,"{<}MDIT{>}"+{<}IS63{>}+" -{<}MDNM{>}"{>}{<}
GT63{>}[255+048+068]{<}EI{>};*;[cr|lf];*;[cr|lf]{<}IF{<}PV61{
{062}}>1970&{<}PV61{>}<1978{>}{<}SV63,4,Mo,10{>}{<}SV64,Veterans{032
}
Day obs.{>}{<}SV65,Monday, October{>}{<}GT66{>}{<}GT63{>}[255
+048+068]{<}EI{>};*;[cr|lf];*;[cr|lf]{<}SV63,10/31{>}{<}SV64,
Halloween{>}{<}SV65,October 31{>}{<}GT62{>}{<}GT63{>}[255+048
+068];*;[cr|lf];*;[cr|lf]{<}IF{<}PV61{>}>2006{>}{<}SV63,1,Su,
11{>}{<}SV64,- Standard Time resumes{>}{<}SV65,Sunday, Novemb
er{>}{<}SX68,2{>}{<}GT66{>}{<}SX63,"{<}MDIT{>}"+{<}IS63{>}+"{032}
-{<}MDNM{>}"{>}{<}GT63{>}[255+048+068]{<}EI{>};*;[cr|lf];*;[c
r|lf]{<}IF{<}PV61{>}>1844{>}{<}SX50,"1,Tu,11/"+{<}IS61{>}{>}
[JM_]2.nthDay[Q2_]{<}SX50,{<}VA@50|2{>}{>}{<}IF{<}PV50{>}<2{>
}{<}SX50,{<}PV50{>}+7{>}{<}EI{>}{<}SX63,"Election Day{tab}Tue
sday, November "+{<}IS50{>}{>}{<}GT63{>}[255+048+068]{<}EI{>}
;*;[cr|lf];*;[cr|lf]{<}IF{<}PV61{>}>1925{>}{<}SV63,11/11{>}{<
}SV64,Veterans Day{>}{<}IF{<}PV61{>}<1954{>}{<}SV64,Armistice
 Day{>}{<}EI{>}{<}SV65,November 11{>}{<}GT62{>}{<}IF{<}IS50{>
}{240}"Sa"&{<}PV61{>}>1977{>}{<}SX63,{<}IS64{>}+" obs.{tab}Fr
iday, November 10[cr|lf]"+{<}IS63{>}{>}{<}EI{>}{<}GT63{>}[255
+048+068]{<}EI{>};*;[cr|lf];*;[cr|lf]{<}IF{<}PV61{>}>1620{>}{
<}SX50,"4,Th,11/"+{<}IS61{>}{>}[JM_]2.nthDay[Q2_]{<}SX70,"Tha
nksgiving Day{tab}Thursday, November "+{<}VA@50|2{>}{>}{<}IF{
<}PV61{>}<1863{>}{<}SX70,{<}IS70{>}+" (unofficial)"{>}{<}EI{>
}{<}GT70{>}{<}SV70,{>}[255+048+068]{<}EI{>};*;[cr|lf];*;[cr|l
f]{<}SV63,12/25{>}{<}SV64,Christmas Day{>}{<}SV65,December 25
{>}{<}GT62{>}{<}IF{<}IS50{>}{240}"Sa"&{<}PV61{>}>1970{>}{<}SX
63,{<}IS64{>}+" obs.{tab}Friday, December 24[cr|lf]"+{<}IS63{
{062}}{>}{<}EI{>}{<}IF{<}IS50{>}{240}"Su"&{<}PV61{>}>1970{>}{<}SX
70,{<}PV61{>}{>}{<}SX63,{<}IS63{>}+"[cr|lf]"+{<}IS64{>}+" obs
{046}{tab}Monday, December 26"{>}{<}EI{>}{<}GT63{>}[255+048+068];
*;[cr|lf];*;[cr|lf][TF_]{<}PRDone{>}{002}[cr|lf][cr|lf]{{;5ho
l.ca}} Holidays - Canada [CLD rev.8/1/07][cr|lf]{002};*; Sour
ce: http://www.pch.gc.ca/progs/cpsc-ccsp/jfa-ha/index_e.cfm[c
r|lf]{<}SV63,1/1{>}{<}SV64,New Year's Day{>}{<}SV65,January 1
{>}{<}GT62{>}{<}GT63{>}[255+048+068];*;[cr|lf];*;[cr|lf]{<}SV
63,2/14{>}{<}SV64,Valentine's Day{>}{<}SV65,February 14{>}{<}
GT62{>}{<}GT63{>}[255+048+068];*;[cr|lf];*;[cr|lf]{<}IF{<}PV6
1{>}>2006{>}{<}GT69{>}{<}SV59,!{>}{<}EI{>};*;[cr|lf];*;[cr|lf
]{<}SX71,{<}IS50{>}{>}{<}IF{<}PV61{>}>1977{>}
{<}SV63,2,Mo,3{>}{<}SV64,Commonwealth Day{>}{<}SV65,Monday, M
arch{>}{<}GT66{>}{<}IF{<}VA{021}71{>}>0{>}{<}IF{<}PV71{>}>{<}
PV50{>}{>}[TG_][LU_]{<}EI{>}{<}EI{>}{<}GT63{>}[255+048+068][B
F_]{<}IF{<}VA$DT{>}==8{>}[TG_]{<}EI{>}{<}EI{>};*;[cr|lf];*;[c
r|lf]{<}IF{<}PV61{>}<2007{>}{<}SX59,9999999{>}{<}IF{<}PV61{>}
{062}1965{>}{<}SV50,1,Su,4{>}{<}IF{<}PV61{>}>2006{>}{<}SV50,2,Su,
3{>}{<}EI{>}{<}SX50,{<}IS50{>}+"/"+{<}IS61{>}{>}{<}SX59,{<}VA
@50,3{>}{>}[JM_]2.nthday[Q2_]{<}SX63,{<}VA@50|2{>}{>}{<}IF{<}
PV61{>}<1987{>}{<}SX63,{<}VA@50|3{>}{>}{<}EI{>}{<}SX50,{<}VA@
59/1{>}+"/"+{<}IS63{>}+"/"+{<}VA@59/2{>}{>}[JM_]2.Date2JDN/nv
[Q2_]{<}SX59,{<}IS50{>}{>}{<}EI{>};*;[cr|lf];*;[cr|lf]{<}SX50
,{<}IS61{>}{>}[JM_]2.Easter/nv[Q2_]{<}SX50,{<}IS01{>}{>}[JM_]
2.Date2JDN/nv[Q2_]{<}SX72,{<}IS50{>}{>}{<}IF{<}PV59{>}<{<}PV7
2{>}-2{>}{<}GT69{>}{<}SV59,!{>}{<}EI{>}{<}EI{>};*;[cr|lf];*;[
cr|lf]{<}SX50,{<}IS61{>}{>}[JM_]2.Easter/nv[Q2_]{<}SX60,{<}IS
01{>}{>}{<}SX50,{<}IS01{>}{>}[JM_]2.Date2JDN/nv[Q2_]{<}SX50,{
<}PV50{>}-2{>}[JM_]2.JDN2Date/nv[Q2_]{<}SX63,{<}VA@50/1{>}+"/
"+{<}VA@50/2{>}{>}{<}SV64,Good Friday{>}{<}SV65,April{>}{<}IF
{<}VA@63/1{>}<"4"{>}{<}SV65,March{>}{<}EI{>}{<}SX65,{<}IS65{>
}+" "+{<}VA@50/2{>}{>}{<}GT62{>}{<}SV50,{tab}{027}Wy, {>}{<}X
S63,50,50,,64{>}{<}SX63,{<}IS50{>}+"{tab}"+{<}IS64{>}{>}{<}GT
63{>}[255+048+068];*;[cr|lf];*;[cr|lf]{<}IF{<}VA{021}59{>}>0{
{062}}{<}IF{<}PV59{>}<={<}PV72{>}{>}{<}GT69{>}{<}SV59,!{>}{<}EI{>
}{<}EI{>};*;[cr|lf];*;[cr|lf]{<}SX63,{<}VA@60/1{>}+"/"+{<}VA@
60/2{>}{>}{<}SV64,Easter Sunday{>}{<}SV65,April{>}{<}IF{<}VA@
60/1{>}<"4"{>}{<}SV65,March{>}{<}EI{>}{<}SX65,{<}IS65{>}+" "+
{<}VA@60/2{>}{>}{<}GT62{>}{<}SV50,{tab}
{027}Wy, {>}{<}XS63,50,50,,64{>}{<}SX63,{<}IS50{>}+"{tab}"+{<
}IS64{>}{>}{<}GT63{>}[255+048+068];*;[cr|lf];*;[cr|lf]{<}SX50
,{<}IS60{>}{>}[JM_]2.Date2JDN/nv[Q2_]{<}SX50,{<}PV50{>}+1{>}[
JM_]2.JDN2Date/nv[Q2_]{<}SX63,{<}VA@50/1{>}+"/"+{<}VA@50/2{>}
{>}{<}SV64,Easter Monday{>}{<}SV65,April{>}{<}IF{<}VA@50/1{>}
<"4"{>}{<}SV65,March{>}{<}EI{>}{<}SX65,{<}IS65{>}+" "+{<}VA@5
0/2{>}{>}{<}GT62{>}{<}SV50,{tab}{027}Wy, {>}{<}XS63,50,50,,64
{>}{<}SX63,{<}IS50{>}+"{tab}"+{<}IS64{>}{>}{<}GT63{>}[255+048
+068];*;[cr|lf];*;[cr|lf]{<}IF{<}VA{021}59{>}>0{>}{<}GT69{>}{
<}EI{>};*;[cr|lf];*;[cr|lf]{<}IF{<}PV61{>}>1913{>}{<}SV63,2,S
u,5{>}{<}SV64,Mother's Day{>}{<}SV65,Sunday, May{>}{<}GT66{>}
{<}GT63{>}[255+048+068]{<}EI{>};*;[cr|lf];*;[cr|lf]{<}SV63,1,
Mo,5{>}{<}SV64,Victoria Day{>}{<}SV65,Monday, May{>}{<}SX68,3
{>}{<}GT66{>}{<}SX68,2{>}{<}IF{<}PV50{>}>24{>}{<}SX50,{<}PV50
{>}-7{>}{<}SX63,{<}IS64{>}+"{tab}"+{<}IS65{>}+" "+{<}IS50{>}{
{062}}{<}EI{>}{<}GT63{>}[255+048+068];*;[cr|lf];*;[cr|lf]{<}IF{<}
PV61{>}>1913{>}{<}SV63,3,Su,6{>}{<}SV64,Father's Day{>}{<}SV6
5,Sunday, June{>}{<}GT66{>}{<}GT63{>}[255+048+068]{<}EI{>};*;
[cr|lf];*;[cr|lf]{<}SV63,6/24{>}{<}SV64,St-Jean Baptiste{>}{<
}SV65,June 24{>}{<}GT62{>}{<}GT63{>}[255+048+068];*;[cr|lf];*
;[cr|lf]{<}IF{<}PV61{>}>1867{>}{<}SV63,7/1{>}{<}SV64,Canada{>
}{<}IF{<}PV61{>}<1983{>}{<}SV64,Dominion{>}{<}EI{>}{<}SX64,{<
}IS64{>}+" Day"{>}{<}SV65,July 1{>}{<}GT62{>}{<}GT63{>}[255+0
48+068];*;[cr|lf];*;[cr|lf]{<}IF{<}IS50{>}{240}"Su"{>}{<}SV63
,7/2{>}{<}SX64,{<}IS64{>}+" obs."{>}{<}SV65,July 2{>}{<}GT62{
{062}}{<}GT63{>}[255+048+068]{<}EI{>}{<}EI{>};*;[cr|lf];*;[cr|lf]
{<}IF{<}PV61{>}>1881{>}{<}SV64,Labor Day{>}{<}IF{<}PV61{>}<18
84&
{<}PV61{>}>1881{>}{<}SX50,"9/5/"+{<}IS61{>}{>}[JM_]2.dow/nv[Q
2_]{<}SX63,{<}IS64{>}+"{tab}"+{<}IS50{>}+", September 5"{>}{<
}GLa{>}{<}EI{>}{<}SV63,1,Mo,9{>}{<}SV65,Monday, September{>}{
<}GT66{>}{<}LBa{>}{<}GT63{>}[255+048+068]{<}EI{>};*;[cr|lf];*
;[cr|lf]{<}IF{<}PV61{>}>1620{>}{<}SX50,"2,Mo,10/"+{<}IS61{>}{
{062}}[JM_]2.nthDay[Q2_]{<}SX70,"Thanksgiving Day{tab}Monday, Oct
ober "+{<}VA@50|2{>}{>}{<}GT70{>}{<}SV70,{>}[255+048+068]{<}E
I{>};*;[cr|lf];*;[cr|lf]{<}IF{<}PV61{>}>1965&{<}PV61{>}<2007{
{062}}{<}SV63,1,Su,10{>}{<}SV64,- Standard Time resumes{>}{<}SV65
,Sunday, October{>}{<}SX68,3{>}{<}GT66{>}{<}SX63,"{<}MDIT{>}"
+{<}IS63{>}+" -{<}MDNM{>}"{>}{<}GT63{>}[255+048+068]{<}EI{>};
*;[cr|lf];*;[cr|lf]{<}SV63,10/31{>}{<}SV64,Halloween{>}{<}SV6
5,October 31{>}{<}GT62{>}{<}GT63{>}[255+048+068];*;[cr|lf];*;
[cr|lf]{<}IF{<}PV61{>}>2006{>}{<}SV63,1,Su,11{>}{<}SV64,- Sta
ndard Time resumes{>}{<}SV65,Sunday, November{>}{<}SX68,2{>}{
<}GT66{>}{<}SX63,"{<}MDIT{>}"+{<}IS63{>}+" -{<}MDNM{>}"{>}{<}
GT63{>}[255+048+068]{<}EI{>};*;[cr|lf];*;[cr|lf]{<}IF{<}PV61{
{062}}>1925{>}{<}SV63,11/11{>}{<}SV64,Remembrance Day{>}{<}SV65,N
ovember 11{>}{<}GT62{>}{<}GT63{>}[255+048+068]{<}EI{>};*;[cr|
lf];*;[cr|lf]{<}IF{<}PV61{>}>1931{>}{<}SV63,12/11{>}{<}SV64,S
tatute of Westminster{>}{<}SV65,December 11{>}{<}GT62{>}{<}GT
63{>}[255+048+068]{<}EI{>};*;[cr|lf];*;[cr|lf]{<}SV63,12/25{>
}{<}SV64,Christmas Day{>}{<}SV65,December 25{>}{<}GT62{>}{<}G
T63{>}[255+048+068];*;[cr|lf];*;[cr|lf]{<}SV63,12/26{>}{<}SV6
4,Boxing Day{>}{<}SV65,December 26{>}{<}GT62{>}{<}GT63{>}[255
+048+068];*;[cr|lf];*;[cr|lf][TF_]{<}PRDone{>}{002}[cr|lf][cr
|lf]Insert any additional HOL.xx frames *above* the following
 frame:[cr|lf]{{;5hol.*}} HOLIDAYS trapname frame [CLD]
[cr|lf]{002}{<}SX50,@upr({<}VA$FR{>}){>}[JM_]2.ab/nv[Q2_]{<}P
RNonexistent frame @50{>}{002}[cr|lf]- - -[cr|lf][cr|lf]
-nd
XPLeNCODE

--
Carl Distefano
cld@xxxxxxxx