Copy link to clipboard
Copied
I have a job crew form that I have pretty much automated to save myself some time at the end of a job. And as a major part of this improvement my only option known to me to handle in/out time calculations using JavaScript to create a function [Time2Min] to convert the times to calculable values inside the function [TimeDiff] that performs the time difference operation. The code is below:
function Round(nValue, nPrecision) {
// round a number a given precision
return util.printf("%,101." + nPrecision + "f", nValue);
} // end round
function Time2Min(cFormat, sTime) {
sTime = sTime.toLowerCase();
// adjust for 12:MM am
if( (cFormat == "h:MM tt" || cFormat == "hh:MM tt") && ( (sTime.substr(0, 2) == "12" && sTime.substr(6,1) == 'a') || (sTime.substr(0, 2) == "12" && sTime.substr(5,1) == 'a') ) )
sTime = "00" + sTime.substr(2, sTime.length - 2);
// convert a formatted time string to number of minutes since midnight
// get time object
var oTime = util.scand("mm/dd/yyyy " + cFormat, "01/01/1970 " + sTime);
// convert to milliseconds
var nTime = oTime.getTime();
// convert to milliseconds to minutes and return value
nTime = nTime / (1000 * 60);
// return round to whole minutes
return Number(Round(nTime, 0));
} // end Time2Min
function TimeDiff(cFormat, cTimeIn, cTimeOut) {
var nDiff = 0;
// get the value of the time in and out fields
var sOut = this.getField(cTimeOut).value;
var sIn = this.getField(cTimeIn).value;
// compute if we have both values
if(sOut != "" && sIn != "") {
// convert time string to minutes and compute difference
nDiff = Time2Min(cFormat, sOut) - Time2Min(cFormat, sIn);
// convert to hours
nDiff = nDiff / 60;
} // end if sOut & sIn
// return rounded value
return Round(nDiff, 2);
}
Is there any way to accomplish this with simple calculations? Please help.
Copy link to clipboard
Copied
Why? What's wrong with what you have?
Get ready! An upgraded Adobe Community experience is coming in January.
Learn more