Expand my Community achievements bar.

Dive into Adobe Summit 2024! Explore curated list of AEM sessions & labs, register, connect with experts, ask questions, engage, and share insights. Don't miss the excitement.

Calculate weekend days

Avatar

Level 2

Hello.

I know there is a discussion about this here already (Calculate the number of week days between two dates)

but I couln't reply to it so therefore I choose to do like this....

I've tried the script (FormCalc) as described in this discussion but it won't work... Can someone please help me and se where I've got it wrong??

If I choose the start date to a friday and the end date to sunday the week after I've got 2 weekend days (it should be 4). The totalsum is ok but I can't get the weekend-days to be correct.

I've tried to change the numbers (1-7) but that won't help so something else must be wrong....

I couln't attach the file so I hope it will do like this.

StartDate:

Tyoe: Date/Time Fiekd, Display pattern: date{EEEE, YYYY-MM-DD},Edit, Validation and Data pattern: date{YYYY-MM-DD}, Visible, Locale: Swedish (Sweden), Value UserEntered - Optional, Binding: Start_Date1

EndDate:

Same as StartDate but of course named EndDate instead.

Weekend Days:

The field is TextField, No Pattern, Visible, Locale: Swedish (Sweden), Value: type: Calculated - Read Only, Calculation Script, Binding: WeedEndDays

The script for weekend days:

form1.Page1.subform1.WeekEndDays::calculate - (FormCalc, client)

if (HasValue(Start_Date1) & HasValue(End_Date1) ) then

  if (Date2Num(End_Date1, "YYYY-MM-DD", "sv_SE") > Date2Num(Start_Date1, "YYYY-MM-DD", "sv_SE")) then

  var TotalDays = Date2Num(End_Date1, "YYYY-MM-DD", "sv_SE") - Date2Num(Start_Date1, "YYYY-MM-DD", "sv_SE") + 1

  var currentDateNum = Date2Num(Start_Date1.formattedValue,"YYYY-MM-DD")

  var dayCnt = 0

  for i=1 upTo TotalDays do

  var dayOfWeek = Num2Date(currentDateNum,"E")

  if (dayOfWeek == 6 | dayOfWeek == 7) then

  dayCnt = dayCnt + 1

  endif

  currentDateNum = currentDateNum + 1

  endfor

  $ = dayCnt

  else

  ""

  endif

else

  ""

endif

0 Replies