Função que converte hora para valor em AdvPL

Função que converte hora para valor em AdvPL

Olá pessoal…

Hoje vou mostrar uma função que desenvolvi que converte hora para valor numérico em AdvPL.

AdvPL
AdvPL

Eu já havia desenvolvido uma rotina que convertesse valor para hora em AdvPL (saiba mais clicando aqui), agora fiz a função que converte hora para valor numérico, por exemplo 01:30, equivale à 1,50.

//Bibliotecas
#Include "Protheus.ch"

/*/{Protheus.doc} zHr2Val
Função que converte Hora para Valor
@author Atilio
@since 16/02/2017
@version 1.0
@param cHora, characters, Parâmetro que contém o conteúdo da hora e minutos (por exemplo, 100:50)
@param cSep, characters, Parâmetro que contém o separador da hora (por exemplo, ':' ou 'h')
@type function
@example u_zHr2Val("01:30", ":") --> 1,50
u_zHr2Val("01h45", "h") --> 1,75
/*/

User Function zHr2Val(cHora, cSep)
	Local aArea   := GetArea()
	Local nAux    := 0
	Local cMin    := ""
	Local nValor  := 0
	Local nPosSep := 0
	Default cHora := ""
	Default cSep  := ':'
	
	//Se tiver a hora
	If !Empty(cHora)
		nPosSep := RAt(cSep, cHora)
		nAux    := Val(SubStr(cHora, nPosSep+1, 2))
		nAux    := Int(Round((nAux*100)/60, 0))
		cMin    := Iif(nAux > 10, cValToChar(nAux), "0"+cValToChar(nAux))
		nValor  := Val(SubStr(cHora, 1, nPosSep-1)+"."+cMin)
	EndIf
	
	RestArea(aArea)
Return nValor

Esses e outros códigos, estão disponíveis gratuitamente no nosso GitHub, acesse em github.com/dan-atilio/AdvPL.

Bom pessoal, por hoje é só.
Abraços e até a próxima.

About Dan_Atilio

Analista e desenvolvedor de sistemas. Técnico em Informática pelo CTI da Unesp. Graduado em Banco de Dados pela Fatec Bauru. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor do projeto Terminal de Informação, onde são postados tutoriais e notícias envolvendo o mundo da tecnologia.

Deixe uma resposta

%d blogueiros gostam disto: