FormatDateTime em Português.

Delphi

19/03/2007

Olá colegas,

Fiz um programinha que envia e-mails para algumas pessoas, no título do e-mail vai a data do compromisso por extenso: [b:82cf30aa09]FormatDateTime(´dddd, dd ´de´ mmmmm ´de´ yyyy´, IBQCompromissoDT_COMPROMISSO.AsDateTime)[/b:82cf30aa09].

Até aí tudo bem, contudo, o programa está num servidor que roda o Windows Server 2003 (Inglês), então ao texto sai assim: [b:82cf30aa09]Monday, 19 de March de 2007[/b:82cf30aa09].

Como faço pra mudar essa configuração de idioma no meu programa?

Obrigado.


Tenil

Tenil

Curtidas 0

Respostas

Massuda

Massuda

19/03/2007

Acredito que seu programa não pode fazer muita coisa em relação ao problema.

O Delphi pega os nomes dos dias da semana e dos meses do Windows. Como o Windows está em inglês, sai tudo em inglês.


GOSTEI 0
Tenil

Tenil

19/03/2007

Eu sei que tem uma configuração de idioma, é um comando. Que transforma o idioma do programa que está rodando, só não lembro qual é esse comando...

Ele fica independente do idioma do windows.


GOSTEI 0
Tenil

Tenil

19/03/2007

Lembrei, isso é em asp.

Mas deve haver alguma função por aí que faça isso.


GOSTEI 0
Tenil

Tenil

19/03/2007

Alguém conhece alguma função que fassa essa converssão?


GOSTEI 0
Ffabiop

Ffabiop

19/03/2007

Pois é, vai ter que formatar a data na mão mesmo, usando o decode date para obter o dia, o mes e o ano da data em questão, fazer um case para verificar o mes que está se tratando(1..12) e retornar o nome do mesmo. Por fim a função dayofweek que retorna o dia da semana(1..7) e uma nova estrutura case para testar o dia da semana e retornar o nome...


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

19/03/2007

como disse o [b:4403f6e4ef]ffabiop[/b:4403f6e4ef], terá de ser feito na mão.
uma forma simples seria criar constantes com os meses do ano e dias da semana. algo assim:
const
  aMes: array[1..12] of string =
    (´Janeiro´, ´Fevereiro´, ´Março´, ´Abril´, ´Maio´, ´Junho´,
     ´Julho´, ´Agosto´, ´Setembro´, ´Outubro´, ´Novembro´, ´Dezembro´);

  aSemana: array[1..7] of string =
    (´Domingo´, ´Segunda-feira´, ´Terça-feira´, ´Quarta-feira´,
     ´Quinta-feira´, ´Sexta-feira´, ´Sábado´);

depois, você pode criar uma função para montar o extenso da data:
function TFormX.DataExtenso(Data: TDateTime): string;
var
  dia, mes, ano: word;
begin
  decodedate( data, ano, mes, dia );
  Result := Format(´¬s, ¬d de ¬s de ¬d´,
    [aSemana[DayOfWeek(data)], dia, aMes[mes], ano]);
end;

e, para usar, algo como:
ShowMessage(DataExtenso(MonthCalendar1.Date));



GOSTEI 0
Marco Salles

Marco Salles

19/03/2007

O delphi pega os nomes definidos nas configuraçoes regionais ... Muitas dessas configuraçoes são copiadas pelo delphi em constantes definidas na biblioteca

Redefina os valores destas cosntantes na abertura de sua aplicação
Assim no Oncreate:
[b:66d60d5d41]para os meses :[/b:66d60d5d41]
longMonthNames[1] :=´janeiro de ´
longMonthNames[2] :=´Fevereiro de ´
longMonthNames[3] :=´Março de ´
longMonthNames[4] :=´Abril de ´
etc...

[b:66d60d5d41]Para os dias da semana[/b:66d60d5d41]
longDayNames[1] :=´é domindo pé de caximbo´ longdayNames[2] :=´é dia acordar com sono ´ longDayNames[3] :=´Tomara que passa rápido ´ longDayNames[4] :=´Hoje tem Vasção na TV ´ longDayNames[5] :=´Quinta nen acredito´ longdayNames[6] :=´Hoje não faço mais nada ´ longDayNames[7] :=´Não deveria acabar Nuca´



GOSTEI 0
Tenil

Tenil

19/03/2007

Galera obrigado, vou tentar aki.

Valeu mesmo.


GOSTEI 0
Tenil

Tenil

19/03/2007

[quote:72c6599169=´Marco Salles´]O delphi pega os nomes definidos nas configuraçoes regionais ... Muitas dessas configuraçoes são copiadas pelo delphi em constantes definidas na biblioteca

Redefina os valores destas cosntantes na abertura de sua aplicação
Assim no Oncreate:
[b:72c6599169]para os meses :[/b:72c6599169]
longMonthNames[1] :=´janeiro de ´
longMonthNames[2] :=´Fevereiro de ´
longMonthNames[3] :=´Março de ´
longMonthNames[4] :=´Abril de ´
etc...

[b:72c6599169]Para os dias da semana[/b:72c6599169]
longDayNames[1] :=´é domindo pé de caximbo´ longdayNames[2] :=´é dia acordar com sono ´ longDayNames[3] :=´Tomara que passa rápido ´ longDayNames[4] :=´Hoje tem Vasção na TV ´ longDayNames[5] :=´Quinta nen acredito´ longdayNames[6] :=´Hoje não faço mais nada ´ longDayNames[7] :=´Não deveria acabar Nuca´
[/quote:72c6599169]


Aí Marco, funcionou filé, obrigado.


GOSTEI 0
POSTAR