Home      Ask a Question      My Stuff      Help   
  
TimeWorksPlus: Scripting of holidays outside of the PayrateScript, AccrueUpScript, AccrueDownScript, or OTThresholdScript
The following scripts are how to script for a holiday in the RoundScript, Script, SplitScript, and ReportingDateScript rules. Keep in mind that you will need to remove some holidays depending on the client.


IsHoliday = (
//New Year's Day or closest Weekday
(day(cdate(indt)) = 1 and month(cdate(indt)) = 1 and "MTWRF" contains weekday(cdate(indt))) or
(day(cdate(indt)) = 31 and month(cdate(indt)) = 12 and weekday(cdate(indt)) = "F") or
(day(cdate(indt)) = 2 and month(cdate(indt)) = 1 and weekday(cdate(indt)) = "M") or

//Martin Luther King Jr Day
(day(cdate(indt)) >= 15 and day(cdate(indy)) <= 21 and month(cdate(indt)) = 1 and weekday(cdate(indt)) = "M") or

//Presidents Day
(day(cdate(indt)) >= 15 and day(cdate(indy)) <= 21 and month(cdate(indt)) = 2 and weekday(cdate(indt)) = "M") or

//Memorial Day
(day(cdate(indt)) >= 25 and month(cdate(indt)) = 5 and weekday(cdate(indt)) = "M") or

//Flag Day or closest Weekday
(day(cdate(indt)) = 14 and month(cdate(indt)) = 6 and "MTWRF" contains weekday(cdate(indt))) or
(day(cdate(indt)) = 13 and month(cdate(indt)) = 6 and weekday(cdate(indt)) = "F") or
(day(cdate(indt)) = 15 and month(cdate(indt)) = 6 and weekday(cdate(indt)) = "M") or

//July 4th or closest Weekday
(day(cdate(indt)) = 4 and month(cdate(indt)) = 7 and "MTWRF" contains weekday(cdate(indt))) or
(day(cdate(indt)) = 3 and month(cdate(indt)) = 7 and weekday(cdate(indt)) = "F") or
(day(cdate(indt)) = 5 and month(cdate(indt)) = 7 and weekday(cdate(indt)) = "M") or

//Labor Day
(day(cdate(indt)) <= 7 and month(cdate(indt)) = 9 and weekday(cdate(indt)) = "M") or

//Columbus Day
(day(cdate(indt)) >= 8 and day(cdate(indt)) <= 14 and month(cdate(indt)) = 10 and weekday(cdate(indt)) = "M") or

//Veterans Day or closest Weekday
(day(cdate(indt)) = 11 and month(cdate(indt)) = 11 and "MTWRF" contains weekday(cdate(indt))) or
(day(cdate(indt)) = 10 and month(cdate(indt)) = 11 and weekday(cdate(indt)) = "F") or
(day(cdate(indt)) = 12 and month(cdate(indt)) = 11 and weekday(cdate(indt)) = "M") or

//Thanksgiving
(day(cdate(indt)) >= 22 and day(cdate(indt)) <= 28 and month(cdate(indt)) = 11 and weekday(cdate(indt)) = "R") or

//Day After Thanksgiving
(day(cdate(indt)) >= 23 and day(cdate(indt)) <= 29 and month(cdate(indt)) = 11 and weekday(cdate(indt)) = "F") or

//Christmas or closest Weekday
(day(cdate(indt)) = 25 and month(cdate(indt)) = 12 and "MTWRF" contains weekday(cdate(indt))) or
(day(cdate(indt)) = 24 and month(cdate(indt)) = 12 and weekday(cdate(indt)) = "F") or
(day(cdate(indt)) = 26 and month(cdate(indt)) = 12 and weekday(cdate(indt)) = "M"));

//Easter
YYYY = year(cdate(indt));
C = year(cdate(indt)) \ 100;
N = YYYY - 19 * (YYYY \ 19);
K = (C - 17) \ 25;
I = C - C \ 4 - (C - K) \ 3 + 19 * N + 15;
I = I - 30 * (I \ 30);
I = I - (I \ 28) * (1 - (I \ 28) * (29 \ (I + 1)) * ((21 - N) \ 11));
J = YYYY + YYYY \ 4 + I + 2 - C + C \ 4;
J = J - 7 * (J \ 7);
L = I - J;
M = 3 + (L + 40) \ 44;
D = L + 28 - 31 * (M \ 4);
EasterUSNO = DateSerial(year(cdate(indt)), M, D);
IsEaster = (cdate(indt) = EasterUSNO);

//Easter Monday
YYYY = year(cdate(indt));
C = year(cdate(indt)) \ 100;
N = YYYY - 19 * (YYYY \ 19);
K = (C - 17) \ 25;
I = C - C \ 4 - (C - K) \ 3 + 19 * N + 15;
I = I - 30 * (I \ 30);
I = I - (I \ 28) * (1 - (I \ 28) * (29 \ (I + 1)) * ((21 - N) \ 11));
J = YYYY + YYYY \ 4 + I + 2 - C + C \ 4;
J = J - 7 * (J \ 7);
L = I - J;
M = 3 + (L + 40) \ 44;
D = L + 28 - 31 * (M \ 4);
EasterUSNO = DateSerial(year(cdate(indt)), M, D);
IsEasterMonday = (cdate(indt) = (EasterUSNO + 1));

//Good Friday
YYYY = year(cdate(indt));
C = year(cdate(indt)) \ 100;
N = YYYY - 19 * (YYYY \ 19);
K = (C - 17) \ 25;
I = C - C \ 4 - (C - K) \ 3 + 19 * N + 15;
I = I - 30 * (I \ 30);
I = I - (I \ 28) * (1 - (I \ 28) * (29 \ (I + 1)) * ((21 - N) \ 11));
J = YYYY + YYYY \ 4 + I + 2 - C + C \ 4;
J = J - 7 * (J \ 7);
L = I - J;
M = 3 + (L + 40) \ 44;
D = L + 28 - 31 * (M \ 4);
EasterUSNO = DateSerial(year(cdate(indt)), M, D);
IsGoodFriday = (cdate(indt) = (EasterUSNO - 2));
ID
1070
Category
<Unassigned>
Date Created
1/13/2014 10:16:30 AM
Date Updated
1/11/2021 12:27:34 AM
Back to Search Results