FormatDateTime em Português.
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.
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
Curtidas 0
Respostas
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.
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
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.
Ele fica independente do idioma do windows.
GOSTEI 0
Tenil
19/03/2007
Lembrei, isso é em asp.
Mas deve haver alguma função por aí que faça isso.
Mas deve haver alguma função por aí que faça isso.
GOSTEI 0
Tenil
19/03/2007
Alguém conhece alguma função que fassa essa converssão?
GOSTEI 0
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
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:
depois, você pode criar uma função para montar o extenso da data:
e, para usar, algo como:
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
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]
[b:66d60d5d41]Para os dias da semana[/b:66d60d5d41]
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
19/03/2007
Galera obrigado, vou tentar aki.
Valeu mesmo.
Valeu mesmo.
GOSTEI 0
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]
[b:72c6599169]Para os dias da semana[/b:72c6599169]
Aí Marco, funcionou filé, obrigado.
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