EderDias 0 Denunciar post Postado Agosto 13, 2007 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
Rodrigo Miss 1 Denunciar post Postado Agosto 13, 2007 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
EderDias 0 Denunciar post Postado Agosto 13, 2007 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
Rodrigo Miss 1 Denunciar post Postado Agosto 13, 2007 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
EderDias 0 Denunciar post Postado Agosto 13, 2007 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
Rodrigo Miss 1 Denunciar post Postado Agosto 13, 2007 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
EderDias 0 Denunciar post Postado Agosto 13, 2007 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
Rodrigo Miss 1 Denunciar post Postado Agosto 14, 2007 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
EderDias 0 Denunciar post Postado Agosto 14, 2007 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
Hugo Slepicka 0 Denunciar post Postado Agosto 14, 2007 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.0Abraço! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo Miss 1 Denunciar post Postado Agosto 14, 2007 tente assim kra ... Result:= aDias[Dia] + FormatDateTime('mmmm', Data) + ' do ano de ' + ANOMOSTRA Compartilhar este post Link para o post Compartilhar em outros sites
EderDias 0 Denunciar post Postado Agosto 14, 2007 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.0R.: 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 ' + ANOMOSTRAR. 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