Data por Extenso em AdvPL

Olá pessoal…

Hoje irei mostrar uma função que criei que monta uma data em AdvPL na forma extensa, como por exemplo, 27/10/2014 se torna 27 de Agosto de 2014.


//Bibliotecas
#Include "Protheus.ch"

/*/{Protheus.doc} zDtExtenso
Retorna a data por extenso
@author Atilio
@since 27/08/2014
@version 1.0
	@param dDataAtual, Data, Data que ficará em extenso
	@param lAbreviado, Lógico, Define se a data será abreviada com números
	@return cRetorno, Retorna a data por extenso
	@example
	u_zDtExtenso(dDataBase, .T.) //27 de Agosto de 2014
	u_zDtExtenso(dDataBase, .F.) //Vinte e Sete de Agosto de Dois Mil e Quatorze
	@see https://terminaldeinformacao.com/advpl/
/*/

User Function zDtExtenso(dDataAtual, lAbreviado)
	Local cRetorno := ""
	Default dDataAtual := dDataBase
	Default lAbreviado := .F.
	
	//Se for da forma abreviada, mostra números
	If lAbreviado
		cRetorno += cValToChar(Day(dDataAtual))
		cRetorno += " de "
		cRetorno += MesExtenso(dDataAtual)
		cRetorno += " de "
		cRetorno += cValToChar(Year(dDataAtual))
	
	//Senão for abreviado, mostra texto completo
	Else
		cRetorno += Capital(Extenso(Day(dDataAtual), .T.))
		cRetorno += " de "
		cRetorno += MesExtenso(dDataAtual)
		cRetorno += " de "
		cRetorno += Capital(Extenso(Year(dDataAtual), .T.))
	EndIf
	
Return cRetorno

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

Abaixo uma imagem de um alert da rotina:

Data por Extenso

Data por Extenso

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

About Dan_Atilio

Analista e desenvolvedor de sistemas na TOTVS Oeste Paulista Bauru. 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.

4 respostas em “Data por Extenso em AdvPL

Deixe uma resposta