dateDiffHourSH6 - H6_TEMPO H6_DATAFIN H6_DATAINI
Autor: Eurai Criado: 09/05/2025 Atualizado: 09/05/2025dateDiffHourSH6 - Data hora, diferença e calculo H6_TEMPO H6_DATAFIN H6_DATAINI
Função criada a alguns anos atrás para cálculo de hora da SH6, existem outras formas de cálcular. Segue 1 delas.
#INCLUDE "APVT100.CH" User Function VTClear() /*/{Protheus.doc} dateDiffHourSH6 Atualiza Tempo @type function @author Eurai Rapelli @since 2014.01.01 /*/ Static Function dateDiffHourSH6() Local cHoraIni := "00:00" Local cHora := "" Local cHoraCalc := "" Local cQuery := "" /* A680ConvHora cHora - Hora a ser convertida no formato HH:MM cDe - Formato da hora fornecida (N-Normal/C-Centesimal) cPara - Formato a ser retornado (N-Normal/C-Centesimal) SomaHoras( cHoraIni, M->H6_TEMPO ) StrTran( '10.08', '.', ':' ) "10:08" A680ConvHora('10.08', "N", "C") "0000000010:13" A680ConvHora('10.08', "N", "N") "0000000010:08" A680ConvHora('10.08', "C", "N") "0000000010:05" A680ConvHora('10.08', "C", "C") "0000000010:08" A680ConvHora("0.50", "C", "C") "0000000000:50" A680ConvHora("0.50", "N", "N") "0000000000:50" A680ConvHora("0.50", "N", "C") "0000000000:83" A680ConvHora("0.50", "C", "N") "0000000000:30" A680ConvHora("0.65", "C", "N") "0000000000:39" A680ConvHora("2.08", "C", "N") "0000000002:05" SomaHoras( "08:00", "0000000000:39" ) 8.39 SomaHoras( "08:00", "0000000002:05" ) 10.05 */ If oBrw01:nAt > 1 If oBrw01:aCols[oBrw01:nAt-1,rXXDTAPONT] == M->H6_DTAPONT cHoraIni := oBrw01:aCols[oBrw01:nAt-1,rXXHORAFIN] Endif Endif M->H6_TEMPO := Padl( AllTrim( SubStr(M->H6_TEMPO,01,03) ), 03, '0' ) + SubStr(M->H6_TEMPO,04) M->H6_TEMPO := StrTran( StrTran( M->H6_TEMPO, " ", "0" ), ".", ":" ) If M->H6_TEMPO <> '000:00' M->H6_DATAINI := M->H6_DATAFIN cHora := A680ConvHora(M->H6_TEMPO, "N", "N") M->H6_HORAINI := StrTran( cHoraIni, ".", ":" ) Do While ( cHoraCalc := SomaHoras( cHoraIni, cHora ) ) >= 24.00 cHoraIni := '00:00' cHoraCalc := StrTran( StrZero( cHoraCalc, 6, 2), ".", ":" ) cHora := SubHoras( cHoraCalc, '24:00' ) cHora := StrTran( StrZero( cHora, 6, 2), ".", ":" ) M->H6_DATAINI := DaySub( M->H6_DATAINI, 1 ) EndDo M->H6_HORAFIN := StrTran( StrZero( cHoraCalc, 5, 2), ".", ":" ) Endif Return( Nil )
Gostou? Compartilhe com seus amigos e deixe um comentário! 😎
Discussão (0)
Sem comentários ainda
Realize o LOGIN no site para poder comentar