How to evaluate Timer Script

Hello Community
I have a timer script on each human Task. I need to check if day of the week is Sunday to Thursday. Weekends are Friday and Saturday.

If its weekday then timer should execute at 24 hours. Else if its Friday or Saturday then timer should execute on Sunday. i have the below script. 
But I still keep getting escalations on friday and saturday.Please suggest where is my script going wrong.

 

============================================================================================

Calendar cal = Calendar.getInstance();

def dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);

if(dayOfWeek == 5){
    
    return 259200000L;
}
else if (dayOfWeek == 6){
    
        return 172800000L;    
}
else
{
    return 86400000L;
}

 

===============================================================

Regards
 

Hi,
I recommend using the java.time api to compute this and use a fixed date calculation instead of a duration:

import java.time.DayOfWeek import java.time.LocalDate import java.time.LocalDateTime import java.time.ZoneId import java.time.ZoneOffset import java.time.temporal.TemporalAdjusters import java.time.temporal.TemporalAmount

def weekdays = [DayOfWeek.SUNDAY, DayOfWeek.MONDAY, DayOfWeek.TUESDAY, DayOfWeek.WEDNESDAY]
def today = LocalDateTime.now()
if(weekdays.contains(today.getDayOfWeek())){
// Return in 24h
return Date.from(today.plusDays(1).atZone(ZoneId.systemDefault()).toInstant());
}else{
// Return next sunday
return Date.from(today.with(TemporalAdjusters.next(DayOfWeek.SUNDAY)).atZone(ZoneId.systemDefault()).toInstant());
}

NB: I have removed Thrurday from weekdays because I guess that you want the timer to be triggered on Sunday and not on Friday when the task is instantiated a Thursday.

NB2: Becareful with the timezone management (if your users have a different timezone than the server), you may want to return a fixed hour in the day to get rid of this issue.

Hello Romain


Thank you for your answer. I tried your code in my Local System and I see correct output.
I will Test this code for different days of the week and finally upload the same code in Production for all users.

 

Our servers and users are in the same timezone. I hope I will not face any problems related to timezone.

Regards