Data por Extenso.
20/05/2003
0
Como faço para transformar a data digitada em um DBEdit para data por extenso ?
Alguém pode me ajudar ?
Alguém pode me ajudar ?
Jeanfiamoncini
Curtir tópico
+ 0
Responder
Post mais votado
20/05/2003
Como faço para transformar a data digitada em um DBEdit para data por extenso ?
Alguém pode me ajudar ?
Como formatar data para exibição por extenso
O Delphi permite formatar datas para apresentação por extenso de forma bastante simples. Vejamos os seguintes exemplos:
Para formatar a data 18/03/1999, podemos utilizar:
No create do form colocar
Shortdateformat:=
dddd, dd/mm/yyyy = Quinta, 18/03/1999
dd/mmm/yyyy = 18/Mar/1999
dddd, dd´ de ´mmmm´ de ´yyyy = Quinta, 18 de Março de 1999
dd´ de ´mmmm´ de ´yyyy, dddd = 18 de Março de 1999, Quinta
Carnette
Responder
Mais Posts
20/05/2003
Rodrigo Costa
Função para escrever data por extenso eu não tenho, mas tenho uma que escreve valores monetários. Talvez você possa adaptá-la à sua necessidade:
function TForm_notafiscal.Extenso(valor: extended): string;
var sValorInt,sValor,sBilh,sMilh,sMil,sCent,sCvos:String;
function Cem( sVal:string ):string;
const
und:array[1..19] of string = ( ´Um´, ´Dois´,´Três´,´Quatro´,´Cinco´,´Seis´,´Sete´,´Oito´,
´Nove´,´Dez´,´Onze´,´Doze´,´Treze´,´Quatorze´,´Quinze´,
´Dezesseis´,´Dezesete´,´Dezoito´,´Dezenove´);
dez:array[2..9] of string = (´Vinte´,´Trinta´,´Quarenta´,´Cinqüenta´,´Sessenta´,´Setenta´,´Oitenta´,´Noventa´);
cen:array[1..9] of string = (´Cento´,´Duzentos´,´Trezentos´,´Quatrocentos´,´Quinhentos´,´Seiscentos´,´Setecentos´,´Oitocentos´,´Novecentos´);
var u,d,c,du:integer;
begin
result:=´´;
c:=strtoint(sVal[1]);
d:=strtoint(sVal[2]);
u:=strtoint(sVal[3]);
du:=strtoint(sVal[2]+sVal[3]);
if sVal=´100´ then result:= ´ Cem ´
else if (c>0) then result := cen[c];
if (c>0)and(du>0) then result:=result+´ e ´;
if (d>1) then result := result + dez[d];
if (d>1)and(u>0) then result:=result+ ´ e ´+ und[u];
if (du<20)and(du>0) then result := result + und[ du ];
end;
begin
sValorInt:= formatfloat(´000000000000´,valor);
sValor:= formatfloat(´000000000000.00´,valor);
sBilh :=copy(sValor,1,3);
sMilh :=copy(sValor,4,3);
sMil :=copy(sValor,7,3);
sCent :=copy(sValor,10,3);
sCvos :=´0´+copy(sValor,14,2);
Result:= trim(Cem( sBilh ));
if sBilh=´001´ then Result:=Result+´ Bilhão, ´;
if sBilh>´001´ then Result:=Result+´ Bilhões, ´;
Result:=Result + trim(Cem( sMilh ));
if sMilh=´001´ then Result:=Result+´ Milhão, ´;
if sMilh>´001´ then Result:=Result+´ Milhões, ´;
Result:=Result + trim(Cem( sMil ));
if sMil >´000´
then begin
if (sCvos=´000´) and (scent=´000´) then
Result:=Result+´ Mil ´
else
Result:=Result+´ Mil e ´;
end;
Result:=Result + trim(Cem( sCent ));
if sValorInt=´000000000001´ then
Result:=Result+´ Real ´
else
Result:=Result+´ Reais ´;
if sCvos=´001´ then Result:=Result +´ e ´ + trim(Cem( sCvos )) + ´ Centavo ´;
if sCvos>´001´ then Result:=Result +´ e ´ + trim(Cem( sCvos )) + ´ Centavos ´;
end;
Responder
20/05/2003
Carnette
Muito obrigado pela resposta.
function DataExtenso(Data:TDateTime): String;
{Retorna uma data por extenso}
var
NoDia : Integer;
DiaDaSemana : array [1..7] of String;
Meses : array [1..12] of String;
Dia, Mes, Ano : Word;
begin
{ Dias da Semana }
DiaDasemana [1]:= ´Domingo´;
DiaDasemana [2]:= ´Segunda-feira´;
DiaDasemana [3]:= ´Terçafeira´;
DiaDasemana [4]:= ´Quarta-feira´;
DiaDasemana [5]:= ´Quinta-feira´;
DiaDasemana [6]:= ´Sexta-feira´;
DiaDasemana [7]:= ´Sábado´;
{ Meses do ano }
Meses [1] := ´Janeiro´;
Meses [2] := ´Fevereiro´;
Meses [3] := ´Março´;
Meses [4] := ´Abril´;
Meses [5] := ´Maio´;
Meses [6] := ´Junho´;
Meses [7] := ´Julho´;
Meses [8] := ´Agosto´;
Meses [9] := ´Setembro´;
Meses [10]:= ´Outubro´;
Meses [11]:= ´Novembro´;
Meses [12]:= ´Dezembro´;
DecodeDate (Data, Ano, Mes, Dia);
NoDia := DayOfWeek (Data);
Result := DiaDaSemana[NoDia] + ´, ´ +
IntToStr(Dia) + ´ de ´ + Meses[Mes]+ ´ de ´ + IntToStr(Ano);
end;
Responder
Clique aqui para fazer login e interagir na Comunidade :)