Fórum Problemas com mascaras em datas com MaskEdit? #334328
06/12/2006
0
tipo 06/12/2006
Com tem muitos usuarios que tem o costume de digitar somente assim
06/12/06, fiz algo para converter para o padrao que fica gravado no banco de dados
if maskedit3.editmask = ´99/99/99´ then MaskEdit3.EditMask:=´99/99/9999´;
Mais tem um pequeno grande problema sobre isso
se eu digitar uma data inferior ao ano da 1956 o maskedit joga para o ano 2055, 2054...
Pois ai vem o problema, estamos quase em 2007, mais em caso de data de nascimento tem alguns que sao dos anos antes de 1956, ai se um cara nasceu em 1938 por exemplo e for digitado no maskedit assim 13/05/38 em vez de aparecer 13/05/1938 vai aparecer 13/05/2038, agora quem nasceu no ano de 1956 ateh 1999 nao tem probelma algum converte a data correta cfe.o ano.
Entao vem a pergunta, tem como arrumar isso?
No agurado
Adriano
Adriano_servitec
Curtir tópico
+ 0Posts
06/12/2006
Micheus
Dei uma adaptada em uma fração de código que utilizava em um componente para data que tratava justamente este tipo de questão. Veja se vai lhe ajudar, passando a data a ser verificada ele retorna ela corrigida conforme condição testada nos if´s:
function DataCorrigida(Data :TDateTime) :TDateTime; var Ano, Mes, Dia :Word; begin DecodeDate(Data, Ano, Mes, Dia); if Ano < 1950 then Inc(Ano, 100) else if Ano > 2050 then Dec(Ano, 100); Result := EncodeDate(Ano, Mes, Dia); end;
[]s
Gostei + 0
06/12/2006
Micheus
Eu usava isto antes de 2000. :oops:
Gostei + 0
07/12/2006
Adriano_servitec
Valeu a ajuda amigo.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)