Data Juliana AADDD ?
19/05/2003
0
Antecipadamente agradeço qualquer resposta.
Sem mais vou ficando por aqui.
Targinosilveira
Posts
19/05/2003
Carnette
Pega esta UNIT http://www.carnette.kit.net/D5/esbdates.zip e dá uma olhada...aí tem trocentas funções de conversão de datas..quem sabe tem aí o que voce procura
20/05/2003
Targinosilveira
20/05/2003
Jairroberto
Na [b:579ddd6b59]unit[/b:579ddd6b59] [i:579ddd6b59]DateUtils[/i:579ddd6b59] há funções para conversão de datas para o formato Juliano:
function DateTimeToJulianDate(const AValue: TDateTime): Double;
function JulianDateToDateTime(const AValue: Double): TDateTime;
function TryJulianDateToDateTime(const AValue: Double;
out ADateTime: TDateTime): Boolean;
function DateTimeToModifiedJulianDate(const AValue: TDateTime): Double;
function ModifiedJulianDateToDateTime(const AValue: Double): TDateTime;
function TryModifiedJulianDateToDateTime(const AValue: Double;
out ADateTime: TDateTime): Boolean;
Há também na [b:579ddd6b59]unit[/b:579ddd6b59] [b:579ddd6b59]ConvUtils[/b:579ddd6b59] a função Convert que aparentemente também pode ser utilizada na conversão.
Consulte o help do Delphi sobre estas funções para obter maiores detalhes.
Só um detalhe... estas units foram introduzidas a partir da versão 6 do Delphi.
Um abraço,
Jair
20/05/2003
Jairroberto
Acredito que sim. Pois ela usa units comuns (SysUtils, Math, Types).
Segue abaixo o código da função:
function DateTimeToJulianDate(const AValue: TDateTime): Double; var LYear, LMonth, LDay: Word; begin DecodeDate(AValue, LYear, LMonth, LDay); Result := (1461 * (LYear + 4800 + (LMonth - 14) div 12)) div 4 + (367 * (LMonth - 2 - 12 * ((LMonth - 14) div 12))) div 12 - (3 * ((LYear + 4900 + (LMonth - 14) div 12) div 100)) div 4 + LDay - 32075.5 + Frac(AValue); end; function DateTimeToModifiedJulianDate(const AValue: TDateTime): Double; const CJDToMJDOffset = 2400000.5; begin Result := DateTimeToJulianDate(AValue) - CJDToMJDOffset; end;
Um abraço,
Jair
20/05/2003
Santosrpno
Dai nã funciona, vou procurar mais e te mando um email.
20/05/2003
Jairroberto
Não é necessário usar a unit inteira. Basta utilizar o código que passei anteriormente no projeto desejado. As duas funções de cálculo só usam rotinas das units SysUtils e System.
Um abraço,
Jair
21/05/2003
Santosrpno
Agradeço a informação, precisamos de profissionais iguais a voçê, só assim teremos êxito em nossas metas.
Nonato.
Clique aqui para fazer login e interagir na Comunidade :)