EL expression to determine the day and time in a branching condition


1 comment

  • Official comment
    Questetra Support

    Thank you for your question.
    You are asking about EL expressions.

    For the day of the week and time at which the branching condition is determined (#now), the formula is as follows

    Determining the day of the week:

    #dateFormatter.format('u', #now) == '3'

    1 = Monday, 2 = Tuesday...7 = Sunday, so the above formula determines if it is a Wednesday. To determine if it is a weekday,  see if it equals 1-5, or not 6 or 7.

    Determining the time of day

    #now.after(#now.getFirstTimeInDate().addHours(10)) && #now.before(#now.getFirstTimeInDate().addHours(18))

    In #now.getFirstTimeInDate().addHours(10), we determine if it is after 10:00 on that day with .after(). Similarly, #now.before(#now.getFirstTimeInDate().addHours(18)) determines if it is before 18:00 on that day.

    Also, if you want to judge the value of a Datetime-type Data Item, for example, the following expression is used.

    #q_date != null && #dateFormatter.format('u', #q_date) == '4'
    #q_datetime != null && #q_datetime.after(#q_datetime.getFirstTimeInDate().addHours(10)) && #q_datetime.before(#q_datetime.getFirstTimeInDate().addHours(18))

    #now is replaced by the data item #q_date / #q_datetime.

    #q_date ! = null is a check to see if the value of the Data Item is non-empty.

    However, since time is recorded in minutes in Datetime-type Data Items, only 10:01 to 17:59 is considered to be within the time period in the above expression. after() / before() will not include a value equal to the specified date and time (in this case, 00 minutes).

    So, to include the 00 minute, the value should be evaluated at 1 minute before (.addMinutes(-1)) and 1 minute after (.addMinutes(1)).

    #q_datetime != null && #q_datetime.after(#q_datetime.getFirstTimeInDate().addHours(10).addMinuites(-1)) && #q_datetime.before(#q_datetime.getFirstTimeInDate().addHours(18).addMinuites(1))

    In this way, the 10:00 to 18:00 period will be correctly determined.

    Comment actions Permalink

Please sign in to leave a comment.