Script to calculate number of days between 2 dates | Community
Skip to main content
Level 4
August 26, 2020
Question

Script to calculate number of days between 2 dates

  • August 26, 2020
  • 3 replies
  • 4658 views

I'm fairly new to scripting and have looked for an answer to this; I have found some posts though have been unable to apply them to my scenario. 

I have one date that is automatically populated with the current date, and another (earlier) date that the user enters. I need to have a field which calculates the difference between these 2 dates in days.

Any help appreciated - I'll use any help as a learning exercise!

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.

3 replies

Kosta_Prokopiu1
Adobe Employee
Adobe Employee
August 26, 2020

Here some links around this subject:

https://experienceleaguecommunities.adobe.com/t5/adobe-livecycle-questions/get-current-date/qaq-p/117777

https://experienceleaguecommunities.adobe.com/t5/adobe-livecycle-questions/using-formcalc-to-calculate-days-between-dates/qaq-p/131378

 

Create a date field or entry

Then a calculated readonly date field

 

In the calculate event of the second field set FormCalc and place the following code:

if (DateField1.rawValue ne null)then
  Abs(Date2Num(DateField1.formattedValue, DateFmt(2)) - Date())
else
  $.rawValue = ""
endif

 

And the result is:

 

lostfroggAuthor
Level 4
August 26, 2020
Thanks for this reply. In your example you have a date field, and a second calculated field where the number of days is displayed. What I am trying to do however is to calculate the difference between 2 date fields, and display it in a 3rd field. Any suggestions for this?
Kosta_Prokopiu1
Adobe Employee
Adobe Employee
August 26, 2020

ok, then a slightly changed form

 

Datefield2 without pre-population in initialize

# of days calculated with slightly modified script

if (DateField1.rawValue ne null and DateField2.rawValue ne null)then
  Abs(Date2Num(DateField1.formattedValue, DateFmt(2)) - Date2Num(DateField2.formattedValue, DateFmt(2)))
else
  $.rawValue = ""
endif

lostfroggAuthor
Level 4
August 26, 2020
Do I paste that script into the script editor for the 3rd box? Date 1 is auto-populated and date 2 is user-entered.
Kosta_Prokopiu1
Adobe Employee
Adobe Employee
September 1, 2020

Regarding the change of output format make the following changes:

Set the Data pattern of your 2 date fields to

and the Display pattern to the one you wish to have

Change the calculation script (if you use mine in FormCalc) to

What this does is to use the data format of your fields to get the date values for calculation which stays fixed whereas your display format can then change because we do not use the formattedValue properties any more.