Copy link to clipboard
Copied
Hello there, I know that there are multiple chains on this but I am struggling to combine a few aspects of the timecode. Inserting a picture. Essentially trying to write a script for the difference between hours worked minus a lunch break. Also trying to have the calculation boxes come up as blank if no time is input. (Also trying to avoid having lunch in and out times)
This is what I have - can someone advise? A quick solution would be much appreciated
// start
var start = this.getField("1").valueAsString
var startArr = start.split(":");
// finish
var finish = this.getField("3").valueAsString;
var finishArr = finish.split(":");
// lunchbreak
var lunchbreak =this.getField("2").valueAsString
var lunchbreakArr = finish.split(":")
//blanknotfilled
if (start=="" || finish=="") event.value = ""
else {
// difference
var hourDiff = (Math.abs(finishArr[0] - startArr[0])) - lunchbreakArr[0];
var minDiff = Math.floor(((Math.abs(finishArr[1] - startArr[1])- lunchbreakArr[0])/ 60)*100);
if (minDiff.toString().length == 1)
minDiff = '0' + minDiff;
var output = hourDiff + "." + minDiff;}
You can use this as 'Document level script':
function timeConvert(time1,time2,time3) {
var aTime = time1.split(":");
var bTime = time2.split(":");
var cTime = time3.split(":");
var a = (Number(aTime[0])*60)+Number(aTime[1]);
var b = (Number(bTime[0])*60)+Number(bTime[1]);
var c = (Number(cTime[0])*60)+Number(cTime[1]);
if(time2)
var num = c-a-b;
else
num = c-a;
var hours = (num / 60);
var rhours = Math.floor(hours);
var minutes = (hours - rhours) * 60;
var rminutes = Math.round(minutes)/60;
if(!
...
Copy link to clipboard
Copied
You can use this as 'Document level script':
function timeConvert(time1,time2,time3) {
var aTime = time1.split(":");
var bTime = time2.split(":");
var cTime = time3.split(":");
var a = (Number(aTime[0])*60)+Number(aTime[1]);
var b = (Number(bTime[0])*60)+Number(bTime[1]);
var c = (Number(cTime[0])*60)+Number(cTime[1]);
if(time2)
var num = c-a-b;
else
num = c-a;
var hours = (num / 60);
var rhours = Math.floor(hours);
var minutes = (hours - rhours) * 60;
var rminutes = Math.round(minutes)/60;
if(!time1 || !time3)
event.value = "";
else
event.value = rhours + rminutes;}
and then call it from total hour's field custom calculation script like this:
timeConvert(this.getField("1").valueAsString,this.getField("2").valueAsString,this.getField("3").valueAsString);
Copy link to clipboard
Copied
THANK YOU!! This is exactly what I was looking for and is a very clear. Really appreciate your help and quick response time.
Copy link to clipboard
Copied