How to Calculate Time Difference Between Two Input Times

Goal

How to get time difference between two times in HH:MM:SS format? Is there any business function available?

Solution

There are two possible implementations for this requirement as below,

Option 1 - through Business Function

Try,

1. Call CalculateTimeConsumed (N968901A, Calculate the duration time) which returns value in math numeric data type

2. Call ConvertTimeToHHMMSS (N968901A, Convert Time Seconds to HHMMSS Format)

Option 2 - through event rule for the application you want to implement

For this, try as below,

  1. Convert Input TimeA from HHMMSS into Seconds (Time A)
  2. Convert TimeA from HHMMSS into Seconds (Time B)
  3. Subtract A to B to calculate time Between
  4. Convert Seconds to HHMMSS format

Parameters:


Possible Implementation:
1. Convert TimeA from HHMMSS into Seconds (Time A)

If FC_mnTime_A is not equal to <Blank>
Or FC_mnTime_A is not equal to <NULL>
VA evt_mnHours01 = ([FC_mnTime_A]/10000)-(mod([FC_mnTime_A],10000)/10000)
VA evt_mnMinSec01 = mod([FC_mnTime_A],10000)
VA evt_mnMinutes01 = ([VA evt_mnMinSec01]/100)-(mod([VA evt_mnMinSec01],100)/100)
VA evt_mnSeconds01 = [VA evt_mnMinSec01]-([VA evt_mnMinutes01]*100)
VA evt_mnTimeInSeconds01 = ((([VA evt_mnHours01]*60)*60)+([VA evt_mnMinutes01]*60))+[VA evt_mnSeconds01]
End If



2. Convert TimeB from HHMMSS into Seconds (Time B)

If FC_mnTime_B is not equal to <Blank>
Or FC_mnTime_B is not equal to <NULL>
VA evt_mnHours02 = ([FC_mnTime_B]/10000)-(mod([FC_mnTime_B],10000)/10000)
VA evt_mnMinSec02 = mod([FC_mnTime_B],10000)
VA evt_mnMinutes02 = ([VA evt_mnMinSec02]/100)-(mod([VA evt_mnMinSec02],100)/100)
VA evt_mnSeconds02 = [VA evt_mnMinSec02]-([VA evt_mnMinutes02]*100)
VA evt_mnTimeInSeconds02 = ((([VA evt_mnHours02]*60)*60)+([VA evt_mnMinutes02]*60))+[VA evt_mnSeconds02]
End If



3. Subtract B from A to calculate time between
FC_mnTime_BetweenTime_Seconds = abs(([VA evt_mnTimeInSeconds01]-[VA evt_mnTimeInSeconds02]))


4. Convert Seconds to HHMMSS format

VA evt_mnSeconds_Output = mod([FC_mnTime_BetweenTime_Seconds],60)
VA evt_mnHourMinute_output = [FC_mnTime_BetweenTime_Seconds]-[VA evt_mnSeconds_Output]
VA evt_mnMinute_Output = mod(([VA evt_mnHourMinute_output]/60),60)
VA evt_mnHour_Output = (([FC_mnTime_BetweenTime_Seconds]-([VA evt_mnMinute_Output]*60))-[VA evt_mnSeconds_Output])/3600
FC_mnTime_BetweenTime_HHMMSS = [VA evt_mnHour_Output]*10000+[VA evt_mnMinute_Output]*100+[VA evt_mnSeconds_Output]