Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

EderDias

Dias Extenso

Recommended Posts

Ola..pessoal...tou montando este codigo pra mostrar a data por extenso ...igual se mostra em Promissória.

 

assim:

 

procedure TForm1.Edit3Enter(Sender: TObject);VarDataVencimento : TDateTime;beginDataVencimento:=StrToDateTime(maskedit5.text);Edit3.Text := 'Aos ' + FormatDateTime('dd "dias do mes de " mmmm "do ano de " yyyy',DataVencimento);  //converte para exenso end;
o resultado ta saindo assim:

Aos 01 dias do mes de janeiro do ano de 2008

Não sei ao certo, gostaria de uma dica.....mas acho que deveria sair assim:

 

Ao(s) primeiro dia do mes de Janeiro do ano de 2008

alguem poderia me dar uma dica e o que eu alteraria no codigo??

 

Grato

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia kra ....

uma idéia é montar uma fução assim:

 

function TForm1.DataExtenso(const Data: TDate): String;var  aDias: array[1..5] of String;begin  ADias[1]:= 'primeiro dias do mes de ';  ADias[2]:= 'segundo dias do mes de ';  ADias[3]:= 'terceiro dias do mes de ';  ADias[4]:= 'quarto dias do mes de ';  ADias[5]:= 'quinto dias do mes de ';  if (DayOf(Data) in[1..5]) then  begin	Result:= 'Ao(s) ' + aDias[DayOf(Data)] + FormatDateTime('mmmm "do ano de " yyyy',Data);  end  else  begin	Result:= 'Ao(s) ' + FormatDateTime('dd "dias do mes de " mmmm "do ano de " yyyy',Data);  end;end;
Chamando ...

procedure TForm1.Button1Click(Sender: TObject);var  DataVencimento : TDateTime;begin  DataVencimento:=StrToDateTime(maskedit5.text);  Edit3.Text := DataExtenso(DataVencimento);end;
Dai basta modificar de acordo com suas necessidades ...

abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rodrigo...Bom Dia!

Grato em responder...mas deu um erro

[Error] Unit1.pas(93): Undeclared identifier: 'DayOf'

 

por acaso esta função precisa da DateUtils?? se for ...ai melou pois meu delphi 4 não possui esta funcção.

 

Grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza fera! precisa sim ...

você pode fazer assim entao:

 

var  aDias: array[1..5] of String;  Dia: word;  begin  Dia:= StrToInt(Copy(DateToStr(Data),1,2));  ADias[1]:= 'primeiro dias do mes de ';  ADias[2]:= 'segundo dias do mes de ';  ADias[3]:= 'terceiro dias do mes de ';  ADias[4]:= 'quarto dias do mes de ';  ADias[5]:= 'quinto dias do mes de ';  if (Dia in[1..5]) then  begin

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rodrigo..perdão..a ignorância, mas ainda não peguei...poderias completar a ideia..tipo eu tenho um edit que vai me fornecer esta data:

 

01/01/2008

 

e em outro edit ele mostra um exemplo assim:

 

Ao(s) primeiro dia do mês de Janeiro do ano de dois mil e oito

 

Poderias aplicar um exemplo da maneira acima??

 

Mto Agradecido.

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

apenas complementei a funcao, ja q você naum tm a unit DateUtils ... comentei ali no code, mais qualquer duvida volte a postar onde você esta tendo dificuldades ok ... abçs

 

function TForm1.DataExtenso(const Data: TDate): String; var   aDias: array[1..5] of String;   Dia: word;   begin   Dia:= StrToInt(Copy(DateToStr(Data),1,2)); // aki ele pega o dia da data passado na funcao ...   ADias[1]:= 'primeiro dias do mes de ';   ADias[2]:= 'segundo dias do mes de ';   ADias[3]:= 'terceiro dias do mes de ';   ADias[4]:= 'quarto dias do mes de ';   ADias[5]:= 'quinto dias do mes de ';    if (Dia in[1..5]) then // se o dia estiver entre 1 e 5   begin	 Result:= 'Ao(s) ' + aDias[Dia] + FormatDateTime('mmmm "do ano de " yyyy',Data);   end   else   begin	 Result:= 'Ao(s) ' + FormatDateTime('dd "dias do mes de " mmmm "do ano de " yyyy',Data);   end;  end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rodrigo...agora peguei a idéia...e completei seguindo o seu raciocínio

 

//extenso do dia mes e anofunction TForm1.DataExtenso(const Data: TDate): String;var   aDias: array[1..31] of String;   Dia: word;begin   Dia:= StrToInt(Copy(DateToStr(Data),1,2)); // aki ele pega o dia da data passado na funcao ...   ADias[1]:= 'Ao primeiro dia do mes de ';   ADias[2]:= 'Aos dois dias do mes de ';   ADias[3]:= 'Aos tres dias do mes de ';   ADias[4]:= 'Aos quatro dias do mes de ';   ADias[5]:= 'Aos cinco dias do mes de ';   ADias[6]:= 'Aos seis dias do mes de ';   ADias[7]:= 'Aos sete dias do mes de ';   ADias[8]:= 'Aos oito dias do mes de ';   ADias[9]:= 'Aos nove dias do mes de ';   ADias[10]:= 'Aos dez dias do mes de ';   ADias[11]:= 'Aos onze dias do mes de ';   ADias[12]:= 'Aos doze dias do mes de ';   ADias[13]:= 'Aos treze dias do mes de ';   ADias[14]:= 'Aos quatorze dias do mes de ';   ADias[15]:= 'Aos quinze dias do mes de ';   ADias[16]:= 'Aos dezesseis dias do mes de ';   ADias[17]:= 'Aos dezessete dias do mes de ';   ADias[18]:= 'Aos dezoito dias do mes de ';   ADias[19]:= 'Aos dezenove dias do mes de ';   ADias[20]:= 'Aos vinte dias do mes de ';   ADias[21]:= 'Aos vinte e um dias do mes de ';   ADias[22]:= 'Aos vinte e dois dias do mes de ';   ADias[23]:= 'Aos vinte e tres dias do mes de ';   ADias[24]:= 'Aos vinte e quatro dias do mes de ';   ADias[25]:= 'Aos vinte e cinco dias do mes de ';   ADias[26]:= 'Aos vinte e seis dias do mes de ';   ADias[27]:= 'Aos vinte e sete dias do mes de ';   ADias[28]:= 'Aos vinte e oito dias do mes de ';   ADias[29]:= 'Aos vinte e nove dias do mes de ';   ADias[30]:= 'Aos trinta dias do mes de ';   ADias[31]:= 'Aos trinta e um dias do mes de ';   if (Dia in[1..31]) then // se o dia estiver entre 1 e 31   begin	 Result:= aDias[Dia] + FormatDateTime('mmmm "do ano de " yyyy',Data);   end   else   begin	 Result:= FormatDateTime('dd "dias do mes de " mmmm "do ano de " yyyy',Data);   end;

Mas ...Rodrigo..mas acabei de descobrir que tbem o ano tem que estar no EXTENSO.

Na sua dica sai assim agora:

 

Aos trigésimo primeiros dias do mes de janeiro do ano de 2007

 

mas me toquei que tem que sair assim:

 

Aos trigésimo primeiros dias do mes de janeiro do ano de dois mil e sete

 

Será que daria pra implementar junto???...ali no código o "do ano de " yyyy',Data); ..não reproduz em extenso??

 

Valeu..mto grato..pela ajuda.. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa beleza ?

No final da sua funcao você pode deixar somente assim:

 

{...}ADias[31]:= 'Aos trinta e um dias do mes de ';Result:= aDias[Dia] + FormatDateTime('mmmm "do ano de " yyyy',Data);
não precisa fazer a verificacao pra ver se os dias estao entre 1 e 31, pois você escreveu um elemento do array pra cada um ....

 

A funcao FormatDateTime, pode trazer o ano YY(07) ou YYYY(2007), para resolver o seu problema, você deve escrever uma funcao q converta numero por extenso ....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola..Rodrigo..bom dia

Carinha sei que é vergonhoso mais eu não sei fazer uma função, alias nunca fiz...

então eu fiz uma pequena gambiarra....e peguei o ano e converti pra extenso....e joguei numa variavel chamada ANOMOSTRA(beleza fiz o testezinho e funcionou).

 

Só que eu não to conseguindo colocar esta variavel na sua linha de codigo na função(a variavel é global):

 

Result:= aDias[Dia] + FormatDateTime('mmmm "do ano de " yyyy',Data);
eu teria que retirar o yyyy do ano e colocar a minha variavel..mas não ta dando certo...

 

Poderias só me mostrar como substituir a variavel ANOMOSTRA pelo YYYY ??

 

tentei assim mas não me mostra o conteudo da variavel:

 

Result:= aDias[Dia] + FormatDateTime('mmmm "do ano de "'+AnoMostra,Data);
Grato

:rolleyes:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Carinha sei que é vergonhoso mais eu não sei fazer uma função, alias nunca fiz...Da uma olhada nesse Curso do amigo Márcio Theis...http://www.plic-plac.com/forum/index.php?topic=162.0

R.: Hugo...Valeu a dica...depois vou dar uma olhadinha...e tentar fazer um exemplinho.....

tente assim kra ...Result:= aDias[Dia] + FormatDateTime('mmmm', Data) + ' do ano de ' + ANOMOSTRA

R. Valeu Rodrigo..deu certo....Mto Grato mais uma vez....Abraço a todos..t+ http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.