Webintelligence formula to represent the difference between two dates HH:MM:SS formatted.

Please suppose you have two dates (referred to the same day), expressed in the format:

HH:MM:SS

Please help me to write the formula to represent the difference between DATE1 and DATE2, with the MINUS sign if DATE2 is earlier than DATE1.

Example:

DATE1 = 01:23:57
DATE2 = 03:46:59
DIFFERENCE = 02:23:02

Other example:

DATE1 = 08:45:50
DATE2 = 08:43:50
DIFFERENCE = - 00:02:00

Please help me to write the BusinessObjects Client formula, too.

LVL 1
hc2342uhxx3vw36x96hqAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
hc2342uhxx3vw36x96hqConnect With a Mentor Author Commented:


=If (├łNullo([Data Ora Passaggio Effettiva]); ""; (If (Segno (InNumero(Sottostringa (FormatoData([Data Ora Passaggio Effettiva];"hh:mm:ss") ; 1 ; 2) ) * 3600 + InNumero(Sottostringa (FormatoData([Data Ora Passaggio Effettiva];"hh:mm:ss") ; 4 ; 2) ) * 60 + InNumero (Sottostringa (FormatoData ([Data Ora Passaggio Effettiva]; "hh:mm:ss") ; 7 ; 2)) - (InNumero(Sottostringa (FormatoData([Data Ora Passaggio Prevista]; "hh:mm:ss") ; 1 ; 2) ) * 3600 + InNumero(Sottostringa (FormatoData([Data Ora Passaggio Prevista];"hh:mm:ss") ; 4 ; 2) ) * 60 + InNumero (Sottostringa (FormatoData([Data Ora Passaggio Prevista];"hh:mm:ss"); 7 ; 2))) ) = -1; "-"; "")

+

(FormatoNumero (InteroInf (Ass (InNumero(Sottostringa (FormatoData([Data Ora Passaggio Effettiva];"hh:mm:ss") ; 1 ; 2) ) * 3600 + InNumero(Sottostringa (FormatoData([Data Ora Passaggio Effettiva];"hh:mm:ss") ; 4 ; 2) ) * 60 + InNumero (Sottostringa (FormatoData([Data Ora Passaggio Effettiva];"hh:mm:ss") ; 7 ; 2)) - (InNumero(Sottostringa (FormatoData([Data Ora Passaggio Prevista];"hh:mm:ss") ; 1 ; 2) ) * 3600 + InNumero(Sottostringa (FormatoData([Data Ora Passaggio Prevista];"hh:mm:ss") ; 4 ; 2) ) * 60 + InNumero (Sottostringa (FormatoData([Data Ora Passaggio Prevista];"hh:mm:ss") ; 7 ; 2))) ) / 3600 ); "00"))

+

":"

+

(FormatoNumero (InteroInf ( Resto (Ass (InNumero(Sottostringa (FormatoData([Data Ora Passaggio Effettiva];"hh:mm:ss") ; 1 ; 2) ) * 3600 + InNumero(Sottostringa (FormatoData([Data Ora Passaggio Effettiva]; "hh:mm:ss") ; 4 ; 2) ) * 60 + InNumero (Sottostringa (FormatoData([Data Ora Passaggio Effettiva];"hh:mm:ss") ; 7 ; 2)) - (InNumero(Sottostringa (FormatoData([Data Ora Passaggio Prevista];"hh:mm:ss") ; 1 ; 2) ) * 3600 + InNumero(Sottostringa (FormatoData([Data Ora Passaggio Prevista];"hh:mm:ss") ; 4 ; 2) ) * 60 + InNumero (Sottostringa (FormatoData([Data Ora Passaggio Prevista];"hh:mm:ss") ; 7 ; 2))) ) ; 3600 ) / 60); "00"))

+

":"

+

(FormatoNumero (Resto ( Resto (Ass (InNumero(Sottostringa (FormatoData([Data Ora Passaggio Effettiva];"hh:mm:ss") ; 1 ; 2) ) * 3600 + InNumero(Sottostringa (FormatoData([Data Ora Passaggio Effettiva];"hh:mm:ss") ; 4 ; 2) ) * 60 + InNumero (Sottostringa (FormatoData([Data Ora Passaggio Effettiva];"hh:mm:ss") ; 7 ; 2)) - (InNumero(Sottostringa (FormatoData([Data Ora Passaggio Prevista];"hh:mm:ss") ; 1 ; 2) ) * 3600 + InNumero(Sottostringa (FormatoData([Data Ora Passaggio Prevista];"hh:mm:ss") ; 4 ; 2) ) * 60 + InNumero (Sottostringa (FormatoData([Data Ora Passaggio Prevista];"hh:mm:ss") ; 7 ; 2))) ) ; 3600 ); 60); "00")))
)

Open in new window

0
 
PCIIainCommented:

time(datediff(seconds,date1,date2))
0
 
hc2342uhxx3vw36x96hqAuthor Commented:
This is the formula in BO Client, could you help me to translate it into WebIntelligence?
=(If (Segno (InNumero(Sottostringa (<DATE2> , 1 , 2) ) * 3600 + InNumero(Sottostringa (<DATE2> , 4 , 2) ) * 60 + InNumero (Sottostringa (<DATE2> , 7 , 2)) - 

(InNumero(Sottostringa (<DATE1> , 1 , 2) ) * 3600 + InNumero(Sottostringa (<DATE1> , 4 , 2) ) * 60 + InNumero (Sottostringa (<DATE1> , 7 , 2))) ) = -1) Then 

"-" Else "") + (FormatoNumero (InteroInf (Ass (InNumero(Sottostringa (<DATE2> , 1 , 2) ) * 3600 + InNumero(Sottostringa (<DATE2> , 4 , 2) ) * 60 + InNumero 

(Sottostringa (<DATE2> , 7 , 2)) - (InNumero(Sottostringa (<DATE1> , 1 , 2) ) * 3600 + InNumero(Sottostringa (<DATE1> , 4 , 2) ) * 60 + InNumero 

(Sottostringa (<DATE1> , 7 , 2))) ) / 3600 ), "00")) + ":" + (FormatoNumero (InteroInf ( Resto (Ass (InNumero(Sottostringa (<DATE2> , 1 , 2) ) * 3600 + 

InNumero(Sottostringa (<DATE2> , 4 , 2) ) * 60 + InNumero (Sottostringa (<DATE2> , 7 , 2)) - (InNumero(Sottostringa (<DATE1> , 1 , 2) ) * 3600 + InNumero

(Sottostringa (<DATE1> , 4 , 2) ) * 60 + InNumero (Sottostringa (<DATE1> , 7 , 2))) ) , 3600 ) / 60), "00")) + ":" + (FormatoNumero (Resto ( Resto (Ass 

(InNumero(Sottostringa (<DATE2> , 1 , 2) ) * 3600 + InNumero(Sottostringa (<DATE2> , 4 , 2) ) * 60 + InNumero (Sottostringa (<DATE2> , 7 , 2)) - (InNumero

(Sottostringa (<DATE1> , 1 , 2) ) * 3600 + InNumero(Sottostringa (<DATE1> , 4 , 2) ) * 60 + InNumero (Sottostringa (<DATE1> , 7 , 2))) ) , 3600 ), 60), 

"00"))

Open in new window

0
 
hc2342uhxx3vw36x96hqAuthor Commented:
PCIIain: are you really sure that your formula is working good on a WebIntelligence system?!

Please note that date1 is a STRING so formatted "HH:MM:SS", and date2 is a STRING so formatted "HH:MM:SS".
0
 
hc2342uhxx3vw36x96hqAuthor Commented:

=If (├łNullo([Data Ora Passaggio Effettiva]); ""; (If (Segno (InNumero(Sottostringa (FormatoData([Data Ora Passaggio Effettiva];"hh:mm:ss") ; 1 ; 2) ) * 3600 + InNumero(Sottostringa (FormatoData([Data Ora Passaggio Effettiva];"hh:mm:ss") ; 4 ; 2) ) * 60 + InNumero (Sottostringa (FormatoData ([Data Ora Passaggio Effettiva]; "hh:mm:ss") ; 7 ; 2)) - (InNumero(Sottostringa (FormatoData([Data Ora Passaggio Prevista]; "hh:mm:ss") ; 1 ; 2) ) * 3600 + InNumero(Sottostringa (FormatoData([Data Ora Passaggio Prevista];"hh:mm:ss") ; 4 ; 2) ) * 60 + InNumero (Sottostringa (FormatoData([Data Ora Passaggio Prevista];"hh:mm:ss"); 7 ; 2))) ) = -1; "-"; "")

+

(FormatoNumero (InteroInf (Ass (InNumero(Sottostringa (FormatoData([Data Ora Passaggio Effettiva];"hh:mm:ss") ; 1 ; 2) ) * 3600 + InNumero(Sottostringa (FormatoData([Data Ora Passaggio Effettiva];"hh:mm:ss") ; 4 ; 2) ) * 60 + InNumero (Sottostringa (FormatoData([Data Ora Passaggio Effettiva];"hh:mm:ss") ; 7 ; 2)) - (InNumero(Sottostringa (FormatoData([Data Ora Passaggio Prevista];"hh:mm:ss") ; 1 ; 2) ) * 3600 + InNumero(Sottostringa (FormatoData([Data Ora Passaggio Prevista];"hh:mm:ss") ; 4 ; 2) ) * 60 + InNumero (Sottostringa (FormatoData([Data Ora Passaggio Prevista];"hh:mm:ss") ; 7 ; 2))) ) / 3600 ); "00"))

+

":"

+

(FormatoNumero (InteroInf ( Resto (Ass (InNumero(Sottostringa (FormatoData([Data Ora Passaggio Effettiva];"hh:mm:ss") ; 1 ; 2) ) * 3600 + InNumero(Sottostringa (FormatoData([Data Ora Passaggio Effettiva]; "hh:mm:ss") ; 4 ; 2) ) * 60 + InNumero (Sottostringa (FormatoData([Data Ora Passaggio Effettiva];"hh:mm:ss") ; 7 ; 2)) - (InNumero(Sottostringa (FormatoData([Data Ora Passaggio Prevista];"hh:mm:ss") ; 1 ; 2) ) * 3600 + InNumero(Sottostringa (FormatoData([Data Ora Passaggio Prevista];"hh:mm:ss") ; 4 ; 2) ) * 60 + InNumero (Sottostringa (FormatoData([Data Ora Passaggio Prevista];"hh:mm:ss") ; 7 ; 2))) ) ; 3600 ) / 60); "00"))

+

":"

+

(FormatoNumero (Resto ( Resto (Ass (InNumero(Sottostringa (FormatoData([Data Ora Passaggio Effettiva];"hh:mm:ss") ; 1 ; 2) ) * 3600 + InNumero(Sottostringa (FormatoData([Data Ora Passaggio Effettiva];"hh:mm:ss") ; 4 ; 2) ) * 60 + InNumero (Sottostringa (FormatoData([Data Ora Passaggio Effettiva];"hh:mm:ss") ; 7 ; 2)) - (InNumero(Sottostringa (FormatoData([Data Ora Passaggio Prevista];"hh:mm:ss") ; 1 ; 2) ) * 3600 + InNumero(Sottostringa (FormatoData([Data Ora Passaggio Prevista];"hh:mm:ss") ; 4 ; 2) ) * 60 + InNumero (Sottostringa (FormatoData([Data Ora Passaggio Prevista];"hh:mm:ss") ; 7 ; 2))) ) ; 3600 ); 60); "00")))
)
0
All Courses

From novice to tech pro — start learning today.