Data por Extenso em AdvPL

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. 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 comentários em “Data por Extenso em AdvPL

Deixe uma resposta

%d blogueiros gostam disto: