Hello,

A few weeks ago I submitted a patch to calendar(1) that helped it handle
fifth  weekday events  and 31st  events, and  afterward, I  noticed that
there were no regression tests. In writing them, I discovered that while
the patch fixed these two particular cases, it broke others. I'll send a
potential  fix which  passes all  the tests  in a  following email.  But
here  is a  potential set  of regressions  and comments/suggestions  are
appreciated.  Are there  too  many tests?  Not  enough? Different  style
required? Does the patch need to be broken up?

Thanks.

Index: Makefile
===================================================================
RCS file: /home/cvs/src/regress/usr.bin/Makefile,v
retrieving revision 1.32
diff -u -p -r1.32 Makefile
--- Makefile    26 Jul 2015 17:29:41 -0000      1.32
+++ Makefile    28 Jul 2016 08:25:26 -0000
@@ -1,7 +1,7 @@
 #      $OpenBSD: Makefile,v 1.32 2015/07/26 17:29:41 zhuk Exp $
 #      $NetBSD: Makefile,v 1.1 1997/12/30 23:27:11 cgd Exp $
 
-SUBDIR+= basename bc dc diff diff3 dirname doas file grep gzip
+SUBDIR+= basename bc calendar dc diff diff3 dirname doas file grep gzip
 SUBDIR+= m4 mandoc openssl sdiff sed signify sort tsort
 SUBDIR+= xargs
 
Index: calendar/20160101.wdout
===================================================================
RCS file: calendar/20160101.wdout
diff -N calendar/20160101.wdout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160101.wdout     28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,8 @@
+Jan 01*        First Friday
+Jan 01*        First Friday in Jan
+Jan 02*        First Saturday
+Jan 02*        First Saturday in Jan
+Jan 03*        First Sunday
+Jan 03*        First Sunday in Jan
+Jan 04*        First Monday
+Jan 04*        First Monday in Jan
Index: calendar/20160114.manout
===================================================================
RCS file: calendar/20160114.manout
diff -N calendar/20160114.manout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160114.manout    28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,2 @@
+Jan 14*        Every Thursday
+Jan 15*        15th of every month
Index: calendar/20160115.wdout
===================================================================
RCS file: calendar/20160115.wdout
diff -N calendar/20160115.wdout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160115.wdout     28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,8 @@
+Jan 15*        Third Friday
+Jan 15*        Third Friday in Jan
+Jan 16*        Third Saturday
+Jan 16*        Third Saturday in Jan
+Jan 17*        Third Sunday
+Jan 17*        Third Sunday in Jan
+Jan 18*        Third Monday
+Jan 18*        Third Monday in Jan
Index: calendar/20160129.wdout
===================================================================
RCS file: calendar/20160129.wdout
diff -N calendar/20160129.wdout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160129.wdout     28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,9 @@
+Jan 29*        Fifth Friday
+Jan 29*        Fifth Friday in Jan
+Jan 30*        Fifth Saturday
+Jan 30*        Fifth Saturday in Jan
+Jan 31*        Fifth Sunday
+Jan 31*        Fifth Sunday in Jan
+Feb 01*        First Monday
+Feb 01*        First Monday in Feb
+Feb 01*        Fifth Monday in Jan
Index: calendar/20160131.monout
===================================================================
RCS file: calendar/20160131.monout
diff -N calendar/20160131.monout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160131.monout    28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,3 @@
+Jan 31*        Every Sunday
+Feb 01*        First of Month
+Feb 01*        Every Monday
Index: calendar/20160201.wdout
===================================================================
RCS file: calendar/20160201.wdout
diff -N calendar/20160201.wdout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160201.wdout     28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,6 @@
+Feb 01*        First Monday
+Feb 01*        First Monday in Feb
+Feb 01*        Fifth Monday in Jan
+Feb 02*        First Tuesday
+Feb 02*        First Tuesday in Feb
+Feb 02*        Fifth Tuesday in Jan
Index: calendar/20160203.wdout
===================================================================
RCS file: calendar/20160203.wdout
diff -N calendar/20160203.wdout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160203.wdout     28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,6 @@
+Feb 03*        First Wednesday
+Feb 03*        First Wednesday in Feb
+Feb 03*        Fifth Wednesday in Jan
+Feb 04*        First Thursday
+Feb 04*        First Thursday in Feb
+Feb 04*        Fifth Thursday in Jan
Index: calendar/20160229.wdout
===================================================================
RCS file: calendar/20160229.wdout
diff -N calendar/20160229.wdout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160229.wdout     28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,5 @@
+Feb 29*        Fifth Monday
+Feb 29*        Fifth Monday in Feb
+Mar 01*        First Tuesday
+Mar 01*        First Tuesday in Mar
+Mar 01*        Fifth Tuesday in Feb
Index: calendar/20160301.wdout
===================================================================
RCS file: calendar/20160301.wdout
diff -N calendar/20160301.wdout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160301.wdout     28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,6 @@
+Mar 01*        First Tuesday
+Mar 01*        First Tuesday in Mar
+Mar 01*        Fifth Tuesday in Feb
+Mar 02*        First Wednesday
+Mar 02*        First Wednesday in Mar
+Mar 02*        Fifth Wednesday in Feb
Index: calendar/20160304.wdout
===================================================================
RCS file: calendar/20160304.wdout
diff -N calendar/20160304.wdout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160304.wdout     28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,11 @@
+Mar 04*        First Friday
+Mar 04*        First Friday in Mar
+Mar 04*        Fifth Friday in Feb
+Mar 05*        First Saturday
+Mar 05*        First Saturday in Mar
+Mar 05*        Fifth Saturday in Feb
+Mar 06*        First Sunday
+Mar 06*        First Sunday in Mar
+Mar 06*        Fifth Sunday in Feb
+Mar 07*        First Monday
+Mar 07*        First Monday in Mar
Index: calendar/20160324.edout
===================================================================
RCS file: calendar/20160324.edout
diff -N calendar/20160324.edout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160324.edout     28 Jul 2016 08:25:26 -0000
@@ -0,0 +1 @@
+Mar 25*        Good Friday
Index: calendar/20160325.edout
===================================================================
RCS file: calendar/20160325.edout
diff -N calendar/20160325.edout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160325.edout     28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,2 @@
+Mar 25*        Good Friday
+Mar 27*        Easter
Index: calendar/20160326.edout
===================================================================
RCS file: calendar/20160326.edout
diff -N calendar/20160326.edout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160326.edout     28 Jul 2016 08:25:26 -0000
@@ -0,0 +1 @@
+Mar 27*        Easter
Index: calendar/20160327.edout
===================================================================
RCS file: calendar/20160327.edout
diff -N calendar/20160327.edout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160327.edout     28 Jul 2016 08:25:26 -0000
@@ -0,0 +1 @@
+Mar 27*        Easter
Index: calendar/20160331.monout
===================================================================
RCS file: calendar/20160331.monout
diff -N calendar/20160331.monout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160331.monout    28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,3 @@
+Mar 31*        Every Thursday
+Apr 01*        First of Month
+Apr 01*        Every Friday
Index: calendar/20160422.manout
===================================================================
RCS file: calendar/20160422.manout
diff -N calendar/20160422.manout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160422.manout    28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,2 @@
+Apr 24*        Last Sunday in April,
+       summer time in Europe
Index: calendar/20160423.manout
===================================================================
RCS file: calendar/20160423.manout
diff -N calendar/20160423.manout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160423.manout    28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,2 @@
+Apr 24*        Last Sunday in April,
+       summer time in Europe
Index: calendar/20160424.manout
===================================================================
RCS file: calendar/20160424.manout
diff -N calendar/20160424.manout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160424.manout    28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,2 @@
+Apr 24*        Last Sunday in April,
+       summer time in Europe
Index: calendar/20160429.edout
===================================================================
RCS file: calendar/20160429.edout
diff -N calendar/20160429.edout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160429.edout     28 Jul 2016 08:25:26 -0000
@@ -0,0 +1 @@
+May 01*        Orthodox Easter
Index: calendar/20160430.edout
===================================================================
RCS file: calendar/20160430.edout
diff -N calendar/20160430.edout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160430.edout     28 Jul 2016 08:25:26 -0000
@@ -0,0 +1 @@
+May 01*        Orthodox Easter
Index: calendar/20160501.edout
===================================================================
RCS file: calendar/20160501.edout
diff -N calendar/20160501.edout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160501.edout     28 Jul 2016 08:25:26 -0000
@@ -0,0 +1 @@
+May 01*        Orthodox Easter
Index: calendar/20160506.manout
===================================================================
RCS file: calendar/20160506.manout
diff -N calendar/20160506.manout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160506.manout    28 Jul 2016 08:25:26 -0000
@@ -0,0 +1 @@
+May 08*        second Sunday in May
Index: calendar/20160507.manout
===================================================================
RCS file: calendar/20160507.manout
diff -N calendar/20160507.manout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160507.manout    28 Jul 2016 08:25:26 -0000
@@ -0,0 +1 @@
+May 08*        second Sunday in May
Index: calendar/20160508.manout
===================================================================
RCS file: calendar/20160508.manout
diff -N calendar/20160508.manout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160508.manout    28 Jul 2016 08:25:26 -0000
@@ -0,0 +1 @@
+May 08*        second Sunday in May
Index: calendar/20160531.monout
===================================================================
RCS file: calendar/20160531.monout
diff -N calendar/20160531.monout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160531.monout    28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,3 @@
+May 31*        Every Tuesday
+Jun 01*        First of Month
+Jun 01*        Every Wednesday
Index: calendar/20160601.manout
===================================================================
RCS file: calendar/20160601.manout
diff -N calendar/20160601.manout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160601.manout    28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,2 @@
+Jun 01         Every June 1st
+Jun 02*        Every Thursday
Index: calendar/20160614.manout
===================================================================
RCS file: calendar/20160614.manout
diff -N calendar/20160614.manout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160614.manout    28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,4 @@
+Jun 15         June 15 (6/15)
+Jun 15         June 15 (Jun. 15)
+Jun 15         June 15 (15 June)
+Jun 15*        15th of every month
Index: calendar/20160615.manout
===================================================================
RCS file: calendar/20160615.manout
diff -N calendar/20160615.manout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160615.manout    28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,5 @@
+Jun 15         June 15 (6/15)
+Jun 15         June 15 (Jun. 15)
+Jun 15         June 15 (15 June)
+Jun 15*        15th of every month
+Jun 16*        Every Thursday
Index: calendar/20160630.monout
===================================================================
RCS file: calendar/20160630.monout
diff -N calendar/20160630.monout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160630.monout    28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,3 @@
+Jun 30*        Every Thursday
+Jul 01*        First of Month
+Jul 01*        Every Friday
Index: calendar/20160701.wdout
===================================================================
RCS file: calendar/20160701.wdout
diff -N calendar/20160701.wdout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160701.wdout     28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,12 @@
+Jul 01*        First Friday
+Jul 01*        First Friday in Jul
+Jul 01*        Fifth Friday in Jun
+Jul 02*        First Saturday
+Jul 02*        First Saturday in Jul
+Jul 02*        Fifth Saturday in Jun
+Jul 03*        First Sunday
+Jul 03*        First Sunday in Jul
+Jul 03*        Fifth Sunday in Jun
+Jul 04*        First Monday
+Jul 04*        First Monday in Jul
+Jul 04*        Fifth Monday in Jun
Index: calendar/20160729.monout
===================================================================
RCS file: calendar/20160729.monout
diff -N calendar/20160729.monout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160729.monout    28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,5 @@
+Jul 29*        Every Friday
+Jul 30*        Every Saturday
+Jul 31*        Every Sunday
+Aug 01*        First of Month
+Aug 01*        Every Monday
Index: calendar/20160731.monout
===================================================================
RCS file: calendar/20160731.monout
diff -N calendar/20160731.monout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160731.monout    28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,3 @@
+Jul 31*        Every Sunday
+Aug 01*        First of Month
+Aug 01*        Every Monday
Index: calendar/20160831.manout
===================================================================
RCS file: calendar/20160831.manout
diff -N calendar/20160831.manout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160831.manout    28 Jul 2016 08:25:26 -0000
@@ -0,0 +1 @@
+Sep 01*        Every Thursday
Index: calendar/20160902.wdout
===================================================================
RCS file: calendar/20160902.wdout
diff -N calendar/20160902.wdout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160902.wdout     28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,11 @@
+Sep 02*        First Friday
+Sep 02*        First Friday in Sep
+Sep 02*        Fifth Friday in Aug
+Sep 03*        First Saturday
+Sep 03*        First Saturday in Sep
+Sep 03*        Fifth Saturday in Aug
+Sep 04*        First Sunday
+Sep 04*        First Sunday in Sep
+Sep 04*        Fifth Sunday in Aug
+Sep 05*        First Monday
+Sep 05*        First Monday in Sep
Index: calendar/20160915.wdout
===================================================================
RCS file: calendar/20160915.wdout
diff -N calendar/20160915.wdout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160915.wdout     28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,4 @@
+Sep 15*        Third Thursday
+Sep 15*        Third Thursday in Sep
+Sep 16*        Third Friday
+Sep 16*        Third Friday in Sep
Index: calendar/20160930.monout
===================================================================
RCS file: calendar/20160930.monout
diff -N calendar/20160930.monout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20160930.monout    28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,5 @@
+Sep 30*        Every Friday
+Oct 01*        First of Month
+Oct 01*        Every Saturday
+Oct 02*        Every Sunday
+Oct 03*        Every Monday
Index: calendar/20161030.wdout
===================================================================
RCS file: calendar/20161030.wdout
diff -N calendar/20161030.wdout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20161030.wdout     28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,4 @@
+Oct 30*        Fifth Sunday
+Oct 30*        Fifth Sunday in Oct
+Oct 31*        Fifth Monday
+Oct 31*        Fifth Monday in Oct
Index: calendar/20161031.wdout
===================================================================
RCS file: calendar/20161031.wdout
diff -N calendar/20161031.wdout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20161031.wdout     28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,5 @@
+Oct 31*        Fifth Monday
+Oct 31*        Fifth Monday in Oct
+Nov 01*        First Tuesday
+Nov 01*        First Tuesday in Nov
+Nov 01*        Fifth Tuesday in Oct
Index: calendar/20161130.manout
===================================================================
RCS file: calendar/20161130.manout
diff -N calendar/20161130.manout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20161130.manout    28 Jul 2016 08:25:26 -0000
@@ -0,0 +1 @@
+Dec 01*        Every Thursday
Index: calendar/20161202.wdout
===================================================================
RCS file: calendar/20161202.wdout
diff -N calendar/20161202.wdout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20161202.wdout     28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,12 @@
+Dec 02*        First Friday
+Dec 02*        First Friday in Dec
+Dec 02*        Fifth Friday in Nov
+Dec 03*        First Saturday
+Dec 03*        First Saturday in Dec
+Dec 03*        Fifth Saturday in Nov
+Dec 04*        First Sunday
+Dec 04*        First Sunday in Dec
+Dec 04*        Fifth Sunday in Nov
+Dec 05*        First Monday
+Dec 05*        First Monday in Dec
+Dec 05*        Fifth Monday in Nov
Index: calendar/20161215.manout
===================================================================
RCS file: calendar/20161215.manout
diff -N calendar/20161215.manout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20161215.manout    28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,2 @@
+Dec 15*        Every Thursday
+Dec 15*        15th of every month
Index: calendar/20161230.wdout
===================================================================
RCS file: calendar/20161230.wdout
diff -N calendar/20161230.wdout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20161230.wdout     28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,10 @@
+Dec 30*        Fifth Friday
+Dec 30*        Fifth Friday in Dec
+Dec 31*        Fifth Saturday
+Dec 31*        Fifth Saturday in Dec
+Jan 01*        First Sunday
+Jan 01*        First Sunday in Jan
+Jan 01*        Fifth Sunday in Dec
+Jan 02*        First Monday
+Jan 02*        First Monday in Jan
+Jan 02*        Fifth Monday in Dec
Index: calendar/20161231.wdout
===================================================================
RCS file: calendar/20161231.wdout
diff -N calendar/20161231.wdout
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/20161231.wdout     28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,5 @@
+Dec 31*        Fifth Saturday
+Dec 31*        Fifth Saturday in Dec
+Jan 01*        First Sunday
+Jan 01*        First Sunday in Jan
+Jan 01*        Fifth Sunday in Dec
Index: calendar/Makefile
===================================================================
RCS file: calendar/Makefile
diff -N calendar/Makefile
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/Makefile   28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,19 @@
+FILES?!=       ls ${.CURDIR}/*.wdout ${.CURDIR}/*.edout ${.CURDIR}/*.manout \
+               ${.CURDIR}/*.monout
+
+CALENDAR?=     calendar
+IN=            ${.CURDIR}/in
+OUT=           ${.CURDIR}/$@
+DATE=          ${f:C|.*/||:C/\..*//}
+
+.for f in ${FILES}
+REGRESS_TARGETS+=${f:C|.*/||}
+.endfor
+.for f in ${FILES}
+${f:C|.*/||}:
+       @${CALENDAR} -f ${.CURDIR}/${f:C|.*/||:C/.*\.//}.in -t 
${f:C|.*/||:C/\..*//} | diff ${OUT} -
+.endfor
+
+.PHONY:        ${REGRESS_TARGETS}
+
+.include <bsd.regress.mk>
Index: calendar/edout.in
===================================================================
RCS file: calendar/edout.in
diff -N calendar/edout.in
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/edout.in   28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,4 @@
+Easter Easter
+Easter=Ostern
+Ostern-2       Good Friday
+Paskha Orthodox Easter
Index: calendar/manout.in
===================================================================
RCS file: calendar/manout.in
diff -N calendar/manout.in
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/manout.in  28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,9 @@
+6/15   June 15 (6/15)
+Jun. 15        June 15 (Jun. 15)
+15 June        June 15 (15 June)
+Thursday       Every Thursday
+June   Every June 1st
+15 *   15th of every month
+May Sun+2      second Sunday in May
+04/SunLast     Last Sunday in April,
+       summer time in Europe
Index: calendar/monout.in
===================================================================
RCS file: calendar/monout.in
diff -N calendar/monout.in
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/monout.in  28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,8 @@
+*      First of Month
+Sunday Every Sunday
+Monday Every Monday
+Tuesday        Every Tuesday
+Wednesday      Every Wednesday
+Thursday       Every Thursday
+Friday Every Friday
+Saturday       Every Saturday
Index: calendar/wdout.in
===================================================================
RCS file: calendar/wdout.in
diff -N calendar/wdout.in
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ calendar/wdout.in   28 Jul 2016 08:25:26 -0000
@@ -0,0 +1,455 @@
+Sunday+1       First Sunday
+01/Sunday+1    First Sunday in Jan
+02/Sunday+1    First Sunday in Feb
+03/Sunday+1    First Sunday in Mar
+04/Sunday+1    First Sunday in Apr
+05/Sunday+1    First Sunday in May
+06/Sunday+1    First Sunday in Jun
+07/Sunday+1    First Sunday in Jul
+08/Sunday+1    First Sunday in Aug
+09/Sunday+1    First Sunday in Sep
+10/Sunday+1    First Sunday in Oct
+11/Sunday+1    First Sunday in Nov
+12/Sunday+1    First Sunday in Dec
+Monday+1       First Monday
+01/Monday+1    First Monday in Jan
+02/Monday+1    First Monday in Feb
+03/Monday+1    First Monday in Mar
+04/Monday+1    First Monday in Apr
+05/Monday+1    First Monday in May
+06/Monday+1    First Monday in Jun
+07/Monday+1    First Monday in Jul
+08/Monday+1    First Monday in Aug
+09/Monday+1    First Monday in Sep
+10/Monday+1    First Monday in Oct
+11/Monday+1    First Monday in Nov
+12/Monday+1    First Monday in Dec
+Tuesday+1      First Tuesday
+01/Tuesday+1   First Tuesday in Jan
+02/Tuesday+1   First Tuesday in Feb
+03/Tuesday+1   First Tuesday in Mar
+04/Tuesday+1   First Tuesday in Apr
+05/Tuesday+1   First Tuesday in May
+06/Tuesday+1   First Tuesday in Jun
+07/Tuesday+1   First Tuesday in Jul
+08/Tuesday+1   First Tuesday in Aug
+09/Tuesday+1   First Tuesday in Sep
+10/Tuesday+1   First Tuesday in Oct
+11/Tuesday+1   First Tuesday in Nov
+12/Tuesday+1   First Tuesday in Dec
+Wednesday+1    First Wednesday
+01/Wednesday+1 First Wednesday in Jan
+02/Wednesday+1 First Wednesday in Feb
+03/Wednesday+1 First Wednesday in Mar
+04/Wednesday+1 First Wednesday in Apr
+05/Wednesday+1 First Wednesday in May
+06/Wednesday+1 First Wednesday in Jun
+07/Wednesday+1 First Wednesday in Jul
+08/Wednesday+1 First Wednesday in Aug
+09/Wednesday+1 First Wednesday in Sep
+10/Wednesday+1 First Wednesday in Oct
+11/Wednesday+1 First Wednesday in Nov
+12/Wednesday+1 First Wednesday in Dec
+Thursday+1     First Thursday
+01/Thursday+1  First Thursday in Jan
+02/Thursday+1  First Thursday in Feb
+03/Thursday+1  First Thursday in Mar
+04/Thursday+1  First Thursday in Apr
+05/Thursday+1  First Thursday in May
+06/Thursday+1  First Thursday in Jun
+07/Thursday+1  First Thursday in Jul
+08/Thursday+1  First Thursday in Aug
+09/Thursday+1  First Thursday in Sep
+10/Thursday+1  First Thursday in Oct
+11/Thursday+1  First Thursday in Nov
+12/Thursday+1  First Thursday in Dec
+Friday+1       First Friday
+01/Friday+1    First Friday in Jan
+02/Friday+1    First Friday in Feb
+03/Friday+1    First Friday in Mar
+04/Friday+1    First Friday in Apr
+05/Friday+1    First Friday in May
+06/Friday+1    First Friday in Jun
+07/Friday+1    First Friday in Jul
+08/Friday+1    First Friday in Aug
+09/Friday+1    First Friday in Sep
+10/Friday+1    First Friday in Oct
+11/Friday+1    First Friday in Nov
+12/Friday+1    First Friday in Dec
+Saturday+1     First Saturday
+01/Saturday+1  First Saturday in Jan
+02/Saturday+1  First Saturday in Feb
+03/Saturday+1  First Saturday in Mar
+04/Saturday+1  First Saturday in Apr
+05/Saturday+1  First Saturday in May
+06/Saturday+1  First Saturday in Jun
+07/Saturday+1  First Saturday in Jul
+08/Saturday+1  First Saturday in Aug
+09/Saturday+1  First Saturday in Sep
+10/Saturday+1  First Saturday in Oct
+11/Saturday+1  First Saturday in Nov
+12/Saturday+1  First Saturday in Dec
+Sunday+2       Second Sunday
+01/Sunday+2    Second Sunday in Jan
+02/Sunday+2    Second Sunday in Feb
+03/Sunday+2    Second Sunday in Mar
+04/Sunday+2    Second Sunday in Apr
+05/Sunday+2    Second Sunday in May
+06/Sunday+2    Second Sunday in Jun
+07/Sunday+2    Second Sunday in Jul
+08/Sunday+2    Second Sunday in Aug
+09/Sunday+2    Second Sunday in Sep
+10/Sunday+2    Second Sunday in Oct
+11/Sunday+2    Second Sunday in Nov
+12/Sunday+2    Second Sunday in Dec
+Monday+2       Second Monday
+01/Monday+2    Second Monday in Jan
+02/Monday+2    Second Monday in Feb
+03/Monday+2    Second Monday in Mar
+04/Monday+2    Second Monday in Apr
+05/Monday+2    Second Monday in May
+06/Monday+2    Second Monday in Jun
+07/Monday+2    Second Monday in Jul
+08/Monday+2    Second Monday in Aug
+09/Monday+2    Second Monday in Sep
+10/Monday+2    Second Monday in Oct
+11/Monday+2    Second Monday in Nov
+12/Monday+2    Second Monday in Dec
+Tuesday+2      Second Tuesday
+01/Tuesday+2   Second Tuesday in Jan
+02/Tuesday+2   Second Tuesday in Feb
+03/Tuesday+2   Second Tuesday in Mar
+04/Tuesday+2   Second Tuesday in Apr
+05/Tuesday+2   Second Tuesday in May
+06/Tuesday+2   Second Tuesday in Jun
+07/Tuesday+2   Second Tuesday in Jul
+08/Tuesday+2   Second Tuesday in Aug
+09/Tuesday+2   Second Tuesday in Sep
+10/Tuesday+2   Second Tuesday in Oct
+11/Tuesday+2   Second Tuesday in Nov
+12/Tuesday+2   Second Tuesday in Dec
+Wednesday+2    Second Wednesday
+01/Wednesday+2 Second Wednesday in Jan
+02/Wednesday+2 Second Wednesday in Feb
+03/Wednesday+2 Second Wednesday in Mar
+04/Wednesday+2 Second Wednesday in Apr
+05/Wednesday+2 Second Wednesday in May
+06/Wednesday+2 Second Wednesday in Jun
+07/Wednesday+2 Second Wednesday in Jul
+08/Wednesday+2 Second Wednesday in Aug
+09/Wednesday+2 Second Wednesday in Sep
+10/Wednesday+2 Second Wednesday in Oct
+11/Wednesday+2 Second Wednesday in Nov
+12/Wednesday+2 Second Wednesday in Dec
+Thursday+2     Second Thursday
+01/Thursday+2  Second Thursday in Jan
+02/Thursday+2  Second Thursday in Feb
+03/Thursday+2  Second Thursday in Mar
+04/Thursday+2  Second Thursday in Apr
+05/Thursday+2  Second Thursday in May
+06/Thursday+2  Second Thursday in Jun
+07/Thursday+2  Second Thursday in Jul
+08/Thursday+2  Second Thursday in Aug
+09/Thursday+2  Second Thursday in Sep
+10/Thursday+2  Second Thursday in Oct
+11/Thursday+2  Second Thursday in Nov
+12/Thursday+2  Second Thursday in Dec
+Friday+2       Second Friday
+01/Friday+2    Second Friday in Jan
+02/Friday+2    Second Friday in Feb
+03/Friday+2    Second Friday in Mar
+04/Friday+2    Second Friday in Apr
+05/Friday+2    Second Friday in May
+06/Friday+2    Second Friday in Jun
+07/Friday+2    Second Friday in Jul
+08/Friday+2    Second Friday in Aug
+09/Friday+2    Second Friday in Sep
+10/Friday+2    Second Friday in Oct
+11/Friday+2    Second Friday in Nov
+12/Friday+2    Second Friday in Dec
+Saturday+2     Second Saturday
+01/Saturday+2  Second Saturday in Jan
+02/Saturday+2  Second Saturday in Feb
+03/Saturday+2  Second Saturday in Mar
+04/Saturday+2  Second Saturday in Apr
+05/Saturday+2  Second Saturday in May
+06/Saturday+2  Second Saturday in Jun
+07/Saturday+2  Second Saturday in Jul
+08/Saturday+2  Second Saturday in Aug
+09/Saturday+2  Second Saturday in Sep
+10/Saturday+2  Second Saturday in Oct
+11/Saturday+2  Second Saturday in Nov
+12/Saturday+2  Second Saturday in Dec
+Sunday+3       Third Sunday
+01/Sunday+3    Third Sunday in Jan
+02/Sunday+3    Third Sunday in Feb
+03/Sunday+3    Third Sunday in Mar
+04/Sunday+3    Third Sunday in Apr
+05/Sunday+3    Third Sunday in May
+06/Sunday+3    Third Sunday in Jun
+07/Sunday+3    Third Sunday in Jul
+08/Sunday+3    Third Sunday in Aug
+09/Sunday+3    Third Sunday in Sep
+10/Sunday+3    Third Sunday in Oct
+11/Sunday+3    Third Sunday in Nov
+12/Sunday+3    Third Sunday in Dec
+Monday+3       Third Monday
+01/Monday+3    Third Monday in Jan
+02/Monday+3    Third Monday in Feb
+03/Monday+3    Third Monday in Mar
+04/Monday+3    Third Monday in Apr
+05/Monday+3    Third Monday in May
+06/Monday+3    Third Monday in Jun
+07/Monday+3    Third Monday in Jul
+08/Monday+3    Third Monday in Aug
+09/Monday+3    Third Monday in Sep
+10/Monday+3    Third Monday in Oct
+11/Monday+3    Third Monday in Nov
+12/Monday+3    Third Monday in Dec
+Tuesday+3      Third Tuesday
+01/Tuesday+3   Third Tuesday in Jan
+02/Tuesday+3   Third Tuesday in Feb
+03/Tuesday+3   Third Tuesday in Mar
+04/Tuesday+3   Third Tuesday in Apr
+05/Tuesday+3   Third Tuesday in May
+06/Tuesday+3   Third Tuesday in Jun
+07/Tuesday+3   Third Tuesday in Jul
+08/Tuesday+3   Third Tuesday in Aug
+09/Tuesday+3   Third Tuesday in Sep
+10/Tuesday+3   Third Tuesday in Oct
+11/Tuesday+3   Third Tuesday in Nov
+12/Tuesday+3   Third Tuesday in Dec
+Wednesday+3    Third Wednesday
+01/Wednesday+3 Third Wednesday in Jan
+02/Wednesday+3 Third Wednesday in Feb
+03/Wednesday+3 Third Wednesday in Mar
+04/Wednesday+3 Third Wednesday in Apr
+05/Wednesday+3 Third Wednesday in May
+06/Wednesday+3 Third Wednesday in Jun
+07/Wednesday+3 Third Wednesday in Jul
+08/Wednesday+3 Third Wednesday in Aug
+09/Wednesday+3 Third Wednesday in Sep
+10/Wednesday+3 Third Wednesday in Oct
+11/Wednesday+3 Third Wednesday in Nov
+12/Wednesday+3 Third Wednesday in Dec
+Thursday+3     Third Thursday
+01/Thursday+3  Third Thursday in Jan
+02/Thursday+3  Third Thursday in Feb
+03/Thursday+3  Third Thursday in Mar
+04/Thursday+3  Third Thursday in Apr
+05/Thursday+3  Third Thursday in May
+06/Thursday+3  Third Thursday in Jun
+07/Thursday+3  Third Thursday in Jul
+08/Thursday+3  Third Thursday in Aug
+09/Thursday+3  Third Thursday in Sep
+10/Thursday+3  Third Thursday in Oct
+11/Thursday+3  Third Thursday in Nov
+12/Thursday+3  Third Thursday in Dec
+Friday+3       Third Friday
+01/Friday+3    Third Friday in Jan
+02/Friday+3    Third Friday in Feb
+03/Friday+3    Third Friday in Mar
+04/Friday+3    Third Friday in Apr
+05/Friday+3    Third Friday in May
+06/Friday+3    Third Friday in Jun
+07/Friday+3    Third Friday in Jul
+08/Friday+3    Third Friday in Aug
+09/Friday+3    Third Friday in Sep
+10/Friday+3    Third Friday in Oct
+11/Friday+3    Third Friday in Nov
+12/Friday+3    Third Friday in Dec
+Saturday+3     Third Saturday
+01/Saturday+3  Third Saturday in Jan
+02/Saturday+3  Third Saturday in Feb
+03/Saturday+3  Third Saturday in Mar
+04/Saturday+3  Third Saturday in Apr
+05/Saturday+3  Third Saturday in May
+06/Saturday+3  Third Saturday in Jun
+07/Saturday+3  Third Saturday in Jul
+08/Saturday+3  Third Saturday in Aug
+09/Saturday+3  Third Saturday in Sep
+10/Saturday+3  Third Saturday in Oct
+11/Saturday+3  Third Saturday in Nov
+12/Saturday+3  Third Saturday in Dec
+Sunday+4       Fourth Sunday
+01/Sunday+4    Fourth Sunday in Jan
+02/Sunday+4    Fourth Sunday in Feb
+03/Sunday+4    Fourth Sunday in Mar
+04/Sunday+4    Fourth Sunday in Apr
+05/Sunday+4    Fourth Sunday in May
+06/Sunday+4    Fourth Sunday in Jun
+07/Sunday+4    Fourth Sunday in Jul
+08/Sunday+4    Fourth Sunday in Aug
+09/Sunday+4    Fourth Sunday in Sep
+10/Sunday+4    Fourth Sunday in Oct
+11/Sunday+4    Fourth Sunday in Nov
+12/Sunday+4    Fourth Sunday in Dec
+Monday+4       Fourth Monday
+01/Monday+4    Fourth Monday in Jan
+02/Monday+4    Fourth Monday in Feb
+03/Monday+4    Fourth Monday in Mar
+04/Monday+4    Fourth Monday in Apr
+05/Monday+4    Fourth Monday in May
+06/Monday+4    Fourth Monday in Jun
+07/Monday+4    Fourth Monday in Jul
+08/Monday+4    Fourth Monday in Aug
+09/Monday+4    Fourth Monday in Sep
+10/Monday+4    Fourth Monday in Oct
+11/Monday+4    Fourth Monday in Nov
+12/Monday+4    Fourth Monday in Dec
+Tuesday+4      Fourth Tuesday
+01/Tuesday+4   Fourth Tuesday in Jan
+02/Tuesday+4   Fourth Tuesday in Feb
+03/Tuesday+4   Fourth Tuesday in Mar
+04/Tuesday+4   Fourth Tuesday in Apr
+05/Tuesday+4   Fourth Tuesday in May
+06/Tuesday+4   Fourth Tuesday in Jun
+07/Tuesday+4   Fourth Tuesday in Jul
+08/Tuesday+4   Fourth Tuesday in Aug
+09/Tuesday+4   Fourth Tuesday in Sep
+10/Tuesday+4   Fourth Tuesday in Oct
+11/Tuesday+4   Fourth Tuesday in Nov
+12/Tuesday+4   Fourth Tuesday in Dec
+Wednesday+4    Fourth Wednesday
+01/Wednesday+4 Fourth Wednesday in Jan
+02/Wednesday+4 Fourth Wednesday in Feb
+03/Wednesday+4 Fourth Wednesday in Mar
+04/Wednesday+4 Fourth Wednesday in Apr
+05/Wednesday+4 Fourth Wednesday in May
+06/Wednesday+4 Fourth Wednesday in Jun
+07/Wednesday+4 Fourth Wednesday in Jul
+08/Wednesday+4 Fourth Wednesday in Aug
+09/Wednesday+4 Fourth Wednesday in Sep
+10/Wednesday+4 Fourth Wednesday in Oct
+11/Wednesday+4 Fourth Wednesday in Nov
+12/Wednesday+4 Fourth Wednesday in Dec
+Thursday+4     Fourth Thursday
+01/Thursday+4  Fourth Thursday in Jan
+02/Thursday+4  Fourth Thursday in Feb
+03/Thursday+4  Fourth Thursday in Mar
+04/Thursday+4  Fourth Thursday in Apr
+05/Thursday+4  Fourth Thursday in May
+06/Thursday+4  Fourth Thursday in Jun
+07/Thursday+4  Fourth Thursday in Jul
+08/Thursday+4  Fourth Thursday in Aug
+09/Thursday+4  Fourth Thursday in Sep
+10/Thursday+4  Fourth Thursday in Oct
+11/Thursday+4  Fourth Thursday in Nov
+12/Thursday+4  Fourth Thursday in Dec
+Friday+4       Fourth Friday
+01/Friday+4    Fourth Friday in Jan
+02/Friday+4    Fourth Friday in Feb
+03/Friday+4    Fourth Friday in Mar
+04/Friday+4    Fourth Friday in Apr
+05/Friday+4    Fourth Friday in May
+06/Friday+4    Fourth Friday in Jun
+07/Friday+4    Fourth Friday in Jul
+08/Friday+4    Fourth Friday in Aug
+09/Friday+4    Fourth Friday in Sep
+10/Friday+4    Fourth Friday in Oct
+11/Friday+4    Fourth Friday in Nov
+12/Friday+4    Fourth Friday in Dec
+Saturday+4     Fourth Saturday
+01/Saturday+4  Fourth Saturday in Jan
+02/Saturday+4  Fourth Saturday in Feb
+03/Saturday+4  Fourth Saturday in Mar
+04/Saturday+4  Fourth Saturday in Apr
+05/Saturday+4  Fourth Saturday in May
+06/Saturday+4  Fourth Saturday in Jun
+07/Saturday+4  Fourth Saturday in Jul
+08/Saturday+4  Fourth Saturday in Aug
+09/Saturday+4  Fourth Saturday in Sep
+10/Saturday+4  Fourth Saturday in Oct
+11/Saturday+4  Fourth Saturday in Nov
+12/Saturday+4  Fourth Saturday in Dec
+Sunday+5       Fifth Sunday
+01/Sunday+5    Fifth Sunday in Jan
+02/Sunday+5    Fifth Sunday in Feb
+03/Sunday+5    Fifth Sunday in Mar
+04/Sunday+5    Fifth Sunday in Apr
+05/Sunday+5    Fifth Sunday in May
+06/Sunday+5    Fifth Sunday in Jun
+07/Sunday+5    Fifth Sunday in Jul
+08/Sunday+5    Fifth Sunday in Aug
+09/Sunday+5    Fifth Sunday in Sep
+10/Sunday+5    Fifth Sunday in Oct
+11/Sunday+5    Fifth Sunday in Nov
+12/Sunday+5    Fifth Sunday in Dec
+Monday+5       Fifth Monday
+01/Monday+5    Fifth Monday in Jan
+02/Monday+5    Fifth Monday in Feb
+03/Monday+5    Fifth Monday in Mar
+04/Monday+5    Fifth Monday in Apr
+05/Monday+5    Fifth Monday in May
+06/Monday+5    Fifth Monday in Jun
+07/Monday+5    Fifth Monday in Jul
+08/Monday+5    Fifth Monday in Aug
+09/Monday+5    Fifth Monday in Sep
+10/Monday+5    Fifth Monday in Oct
+11/Monday+5    Fifth Monday in Nov
+12/Monday+5    Fifth Monday in Dec
+Tuesday+5      Fifth Tuesday
+01/Tuesday+5   Fifth Tuesday in Jan
+02/Tuesday+5   Fifth Tuesday in Feb
+03/Tuesday+5   Fifth Tuesday in Mar
+04/Tuesday+5   Fifth Tuesday in Apr
+05/Tuesday+5   Fifth Tuesday in May
+06/Tuesday+5   Fifth Tuesday in Jun
+07/Tuesday+5   Fifth Tuesday in Jul
+08/Tuesday+5   Fifth Tuesday in Aug
+09/Tuesday+5   Fifth Tuesday in Sep
+10/Tuesday+5   Fifth Tuesday in Oct
+11/Tuesday+5   Fifth Tuesday in Nov
+12/Tuesday+5   Fifth Tuesday in Dec
+Wednesday+5    Fifth Wednesday
+01/Wednesday+5 Fifth Wednesday in Jan
+02/Wednesday+5 Fifth Wednesday in Feb
+03/Wednesday+5 Fifth Wednesday in Mar
+04/Wednesday+5 Fifth Wednesday in Apr
+05/Wednesday+5 Fifth Wednesday in May
+06/Wednesday+5 Fifth Wednesday in Jun
+07/Wednesday+5 Fifth Wednesday in Jul
+08/Wednesday+5 Fifth Wednesday in Aug
+09/Wednesday+5 Fifth Wednesday in Sep
+10/Wednesday+5 Fifth Wednesday in Oct
+11/Wednesday+5 Fifth Wednesday in Nov
+12/Wednesday+5 Fifth Wednesday in Dec
+Thursday+5     Fifth Thursday
+01/Thursday+5  Fifth Thursday in Jan
+02/Thursday+5  Fifth Thursday in Feb
+03/Thursday+5  Fifth Thursday in Mar
+04/Thursday+5  Fifth Thursday in Apr
+05/Thursday+5  Fifth Thursday in May
+06/Thursday+5  Fifth Thursday in Jun
+07/Thursday+5  Fifth Thursday in Jul
+08/Thursday+5  Fifth Thursday in Aug
+09/Thursday+5  Fifth Thursday in Sep
+10/Thursday+5  Fifth Thursday in Oct
+11/Thursday+5  Fifth Thursday in Nov
+12/Thursday+5  Fifth Thursday in Dec
+Friday+5       Fifth Friday
+01/Friday+5    Fifth Friday in Jan
+02/Friday+5    Fifth Friday in Feb
+03/Friday+5    Fifth Friday in Mar
+04/Friday+5    Fifth Friday in Apr
+05/Friday+5    Fifth Friday in May
+06/Friday+5    Fifth Friday in Jun
+07/Friday+5    Fifth Friday in Jul
+08/Friday+5    Fifth Friday in Aug
+09/Friday+5    Fifth Friday in Sep
+10/Friday+5    Fifth Friday in Oct
+11/Friday+5    Fifth Friday in Nov
+12/Friday+5    Fifth Friday in Dec
+Saturday+5     Fifth Saturday
+01/Saturday+5  Fifth Saturday in Jan
+02/Saturday+5  Fifth Saturday in Feb
+03/Saturday+5  Fifth Saturday in Mar
+04/Saturday+5  Fifth Saturday in Apr
+05/Saturday+5  Fifth Saturday in May
+06/Saturday+5  Fifth Saturday in Jun
+07/Saturday+5  Fifth Saturday in Jul
+08/Saturday+5  Fifth Saturday in Aug
+09/Saturday+5  Fifth Saturday in Sep
+10/Saturday+5  Fifth Saturday in Oct
+11/Saturday+5  Fifth Saturday in Nov
+12/Saturday+5  Fifth Saturday in Dec

-- 
TAI64 timestamp: 400000005799c8fe


Reply via email to