6 Replies Latest reply on Aug 17, 2008 7:24 AM by gkaiseril

# Date Calculations

Looking to subtract Date1 from Date2 and have the result be a number (either + or -).

Possible?

TIA
Scott
• ###### 1. Re: Date Calculations
Almost certainly, but what would you want the number to represent?

For example, if it is "days"
* Number of 24 hour periods, rounded up?
* Number of 24 hour periods, rounded down?
* Number of 24 hour periods, rounded to closest?
* Number of calendar days falling in the interval?
* Difference between dates, considered as days since a starting point,
ignoring the time of day?

Aandi Inston
• ###### 2. Re: Date Calculations
Basically, I want to replication Excel's date calculation capability. That is, Start date - End date = x days. X days will appear in a column next to the date fields. So difference between dates ignoring time is what I think I need.

Example: Start Date: 1-Jan-08 End Date: 15-Jan-08 Delta: 15

Thanks!

Scott

P.S. Conditional formatting is next question...if +, will need red. If - then clear. Will work on that later tho!
• ###### 3. Re: Date Calculations
If you are using LiveCycle Designer you can use the "Date2Num()" function to get the number of days from LiveCycle Designer's Epoch date for each date and then subtract the number of days. You will also have to make sure you use the correct format string in the function.

For AcroForms, the version 5 JavaScript Reference has an extended date and time calculation example.
• ###### 4. Re: Date Calculations
Geo,

You have a link to that 5.0 reference? I have found 7.0 and 6.0 Ref guides.

Working in Acrobat 5.0 here myself (for now).
• ###### 5. Re: Date Calculations
Is this right?

Acrobat JavaScript Scripting Reference (Acrobat 7.0.5)
• ###### 6. Re: Date Calculations
Here is the link, http://www.adobe.com/devnet/acrobat/javascript.html, to Acrobat JaavaScript Documentation, the material for version 5 is at the very bottom of the page.

// document level function get floor value of a number
function Floor(fValue) {
return Math.floor(fValue);
} // end Floor function

// document level function to compute the number of days from the Epoch date
function Date2Num(sDate, sFormat) {
var fSecond =1000;
var fMinute = 60 * fSecond;
var fHour = 60 * fMinute;
var fDay = 24 * fHour;

var oDate = util.scand(sFormat, sDate); // convert string date to date time object
var fDate = oDate.valueOf(); // convert to milliseconds from epoch date;
var fDate = fDate / fDay; // milliseconds convert to days
var fDate = Floor(fDate); // convert to lowest whole number
return fDate; // return number of days
} // end Date2Num function

// custom filed calculation to compute the difference in days between 2 dates
// compute difference in minutes and convert to days
var Start = this.getField("Start date").value; // start date value
var sFormat = "mm/dd/yyyy"; // start date format
var End = this.getField("End date").value;
var sFormat = "mm/dd/yyyy"; // end date value
var eFormat = sFormat; // end date format
event.value = Date2Num(End, eFormat) - Date2Num(Start, sFormat);