@@ -2708,6 +2708,24 @@ export default function(value, nominatim_object, optional_conf_parm) {
27082708 var canadaDay = july_1 . getDay ( ) === 0 ? 2 : 1 ;
27092709 /* }}} */
27102710
2711+ /* Calculate Christmas Day and Boxing bank holidays (UK).
2712+ Christmas Day observed 25th December unless it is a weekend, then the following week day
2713+ Boxing Day the next week day after Christmas Day bank holiday. {{{ */
2714+ var christmasDayBh = getDateOfNextWeekdayRange ( 1 , 5 , new Date ( year , 11 , 25 ) ) ;
2715+ var dayAfterChristmas = new Date ( christmasDayBh ) ;
2716+ dayAfterChristmas . setDate ( christmasDayBh . getDate ( ) + 1 ) ;
2717+ var boxingDayBh = getDateOfNextWeekdayRange ( 1 , 5 , dayAfterChristmas ) ;
2718+ /* }}} */
2719+
2720+ /* Calculate New Years and 2nd January bank holidays (Scotland).
2721+ New Year's Day observed 1st January unless it is a weekend, then the following week day
2722+ 2nd January the next week day after New Year's Day bank holiday. {{{ */
2723+ var newYearsBh = getDateOfNextWeekdayRange ( 1 , 5 , new Date ( year , 0 , 1 ) ) ;
2724+ var dayAfterNewYears = new Date ( newYearsBh ) ;
2725+ dayAfterNewYears . setDate ( newYearsBh . getDate ( ) + 1 ) ;
2726+ var secondJanBh = getDateOfNextWeekdayRange ( 1 , 5 , dayAfterNewYears ) ;
2727+ /* }}} */
2728+
27112729 /* Calculation of the spring and autumnal equinoxes (for Public holidays in Japan). {{{ */
27122730 function springEquinoxCalc ( year ) {
27132731 if ( year >= 1900 && year <= 1923 ) {
@@ -2808,6 +2826,8 @@ export default function(value, nominatim_object, optional_conf_parm) {
28082826 'orthodox easter' : oDate ,
28092827 'victoriaDay' : new Date ( year , 4 , victoriaDay ) ,
28102828 'canadaDay' : new Date ( year , 6 , canadaDay ) ,
2829+ 'boxingDayBh' : boxingDayBh ,
2830+ 'secondJanBh' : secondJanBh ,
28112831 'firstJanuaryMonday' : new Date ( year , 0 , firstWeekdayOfMonth ( 0 , 1 ) ) ,
28122832 'firstFebruaryMonday' : new Date ( year , 1 , firstWeekdayOfMonth ( 1 , 1 ) ) ,
28132833 'lastFebruarySunday' : new Date ( year , 1 , lastFebruarySunday ) ,
@@ -2825,6 +2845,7 @@ export default function(value, nominatim_object, optional_conf_parm) {
28252845 'firstNovemberTuesday' : new Date ( year , 10 , firstWeekdayOfMonth ( 10 , 2 ) ) ,
28262846 'firstMarchTuesday' : new Date ( year , 2 , firstWeekdayOfMonth ( 2 , 2 ) ) ,
28272847 'firstAugustTuesday' : new Date ( year , 7 , firstWeekdayOfMonth ( 7 , 2 ) ) ,
2848+ 'firstAugustMonday' : new Date ( year , 7 , firstWeekdayOfMonth ( 7 , 1 ) ) ,
28282849 'firstAugustFriday' : new Date ( year , 7 , firstWeekdayOfMonth ( 7 , 5 ) ) ,
28292850 'firstNovemberThursday' : new Date ( year , 10 , firstWeekdayOfMonth ( 10 , 4 ) ) ,
28302851 'lastMayMonday' : new Date ( year , 4 , lastWeekdayOfMonth ( 4 , 1 ) ) ,
@@ -2839,9 +2860,13 @@ export default function(value, nominatim_object, optional_conf_parm) {
28392860 'nextSaturday20Jun' : getDateOfWeekdayInDateRange ( 6 , new Date ( year , 5 , 20 ) ) ,
28402861 'nextSaturday31Oct' : getDateOfWeekdayInDateRange ( 6 , new Date ( year , 9 , 31 ) ) ,
28412862 'nextWednesday16Nov' : getDateOfWeekdayInDateRange ( 3 , new Date ( year , 10 , 16 ) ) ,
2863+ 'nextMo-Fr01January' : getDateOfNextWeekdayRange ( 1 , 5 , new Date ( year , 0 , 1 ) ) ,
28422864 'nextMo-Fr17March' : getDateOfNextWeekdayRange ( 1 , 5 , new Date ( year , 2 , 17 ) ) ,
28432865 'nextMo-Sa01May' : getDateOfNextWeekdayRange ( 1 , 6 , new Date ( year , 4 , 1 ) ) ,
2866+ 'nextMo-Fr12July' : getDateOfNextWeekdayRange ( 1 , 5 , new Date ( year , 6 , 12 ) ) ,
28442867 'nextMo-Sa07August' : getDateOfNextWeekdayRange ( 1 , 6 , new Date ( year , 7 , 7 ) ) ,
2868+ 'nextMo-Fr30November' : getDateOfNextWeekdayRange ( 1 , 5 , new Date ( year , 10 , 30 ) ) ,
2869+ 'nextMo-Fr25December' : getDateOfNextWeekdayRange ( 1 , 5 , new Date ( year , 11 , 25 ) ) ,
28452870 'nextMo-Sa25December' : getDateOfNextWeekdayRange ( 1 , 6 , new Date ( year , 11 , 25 ) ) ,
28462871 'springEquinox' : springEquinoxCalc ( year ) ,
28472872 'autumnalEquinox' : autumnalEquinoxCalc ( year ) ,
0 commit comments