Como saber se um tipo de variável é TDateTime, TDate ou TTime
Ola,
eu preciso saber se uma variável é do tipo TDateTime, TDate ou TTime
Alguám tem alguma ideia de como fazer isso?
Tentei usar o código abaixo mas o retorno é sempre falso
Obrigado
eu preciso saber se uma variável é do tipo TDateTime, TDate ou TTime
Alguám tem alguma ideia de como fazer isso?
Tentei usar o código abaixo mas o retorno é sempre falso
program Project1; {$APPTYPE CONSOLE} {$R *.res} uses System.Rtti, System.SysUtils; var DateTime, Date,Time: TValue; begin DateTime:= StrToDateTime( '01/01/2013 01:05:09' ); if ( DateTime.TypeInfo = System.TypeInfo(TDateTime) ) then Writeln( 'Is TDateTime' ) else Writeln( 'Is NOT TDateTime' ); Date:= StrToDate( '01/01/2015' ); if ( Date.TypeInfo = System.TypeInfo(TDate) ) then Writeln( 'Is TDate' ) else Writeln( 'Is NOT TDate' ); Time:= StrToTime( '01:01:02' ); if ( Date.TypeInfo = System.TypeInfo(TTime) ) then Writeln( 'Is TTime' ) else Writeln( 'Is NOT TTime' ); Readln; end.
Obrigado
Johni Marangon
Curtidas 0
Respostas
Johni Marangon
03/10/2013
A solução para o problema descrito nesse post esta nos links abaixo, caso alguém tenha a mesma necessidade.
[url]http://stackoverflow.com/questions/19165019/how-know-type-variable-is-tdatetime-tdate-and-ttime-in-delphi[/url]
[url]https://forums.embarcadero.com/message.jspa?messageID=601201#601201[/url]
Abraço
[url]http://stackoverflow.com/questions/19165019/how-know-type-variable-is-tdatetime-tdate-and-ttime-in-delphi[/url]
[url]https://forums.embarcadero.com/message.jspa?messageID=601201#601201[/url]
Abraço
GOSTEI 0
Johni Marangon
03/10/2013
A solução para o problema descrito nesse post pode ser vista nos links abaixo, caso alguém precise
[url]https://forums.embarcadero.com/message.jspa?messageID=601201#601201[/url]
[url]http://stackoverflow.com/questions/19165019/how-know-type-variable-is-tdatetime-tdate-and-ttime-in-delphi[/url]
Abraço.
[url]https://forums.embarcadero.com/message.jspa?messageID=601201#601201[/url]
[url]http://stackoverflow.com/questions/19165019/how-know-type-variable-is-tdatetime-tdate-and-ttime-in-delphi[/url]
Abraço.
GOSTEI 0
Eduardo Mendonça
03/10/2013
faze o teste com cada tipo já não resolveria?
GOSTEI 0
Johni Marangon
03/10/2013
Ola maginal tudo bem?
Internamente o Delphi trata tipos de TDateTime, TDate e TTime data como Double, dai a nossa dificuldade pois tipos de dados ponto flutuante devem ter tratamento diferente dos tipos data em comandos SQL.
Estamos utilizando dessa forma pois queremos montar um Builder SQL, nossa estrutura de campos esta utilizando o tipo TValue para ficar genérico a passagem de paramentos.
Por exemplo: o valor 40899 representa a data de 22/12/201 mas também pode representar um valor monetário qualquer.
Grande abraço
Internamente o Delphi trata tipos de TDateTime, TDate e TTime data como Double, dai a nossa dificuldade pois tipos de dados ponto flutuante devem ter tratamento diferente dos tipos data em comandos SQL.
Estamos utilizando dessa forma pois queremos montar um Builder SQL, nossa estrutura de campos esta utilizando o tipo TValue para ficar genérico a passagem de paramentos.
Por exemplo: o valor 40899 representa a data de 22/12/201 mas também pode representar um valor monetário qualquer.
var Valor: Double; begin Valor:= 40899; ShowMessage( DateToStr( TDateTime( Valor ) ) ); ShowMessage( FormatCurr( '0.00', Valor ) ); end;
Grande abraço
GOSTEI 0
Erasmo Junior
03/10/2013
alguém resolveu isso tenho a mesma duvida.
GOSTEI 0