Nesse vídeo demonstraremos como calcular a diferença entre o período de duas datas e horários com as funções AtTotHora e DifPeriodo.
Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:
//Bibliotecas
#Include "TOTVS.ch"
/*/{Protheus.doc} User Function zExe052
Exemplo de função que retorna o tempo total entre duas datas e horários
@type Function
@author Atilio
@since 05/12/2022
@obs
Função AtTotHora
Parâmetros
+ Data inicial
+ Hora inicial
+ Data final
+ Hora final
+ Máscara que irá formatar o retorno (sendo opcional com o conteúdo default "999D 99:99")
Retorno
+ Retorna o tempo total encontrado
Função DifPeriodo
Parâmetros
+ Data inicial
+ Hora inicial
+ Data final
+ Hora final
Retorno
+ Retorna o tempo total encontrado
**** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/
User Function zExe052()
Local aArea := FWGetArea()
Local dDataIni := sToD("20221201")
Local cHoraIni := "06:30:00"
Local dDataFim := sToD("20221205")
Local cHoraFim := "14:15:00"
Local cResult1 := ""
Local cResult2 := ""
//Busca o total com AtTotHora (que retorna o número de dias com horas)
cResult1 := AtTotHora(dDataIni, cHoraIni, dDataFim, cHoraFim)
FWAlertInfo("Resultado da função é: " + cResult1, "Teste AtTotHora")
//Busca o total com DifPeriodo (que retorna o número total de horas entre duas datas)
cResult2 := DifPeriodo(dDataIni, cHoraIni, dDataFim, cHoraFim)
FWAlertInfo("Resultado da função é: " + cResult2, "Teste DifPeriodo")
FWRestArea(aArea)
Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.