Data Juliana AADDD ?

19/05/2003

3

Amigos estou precisando de uma ajuda muito grande estou precisando transformar uma data no formato dd/mm/aaaa para o formato de data juliana aaddd mas o problem é que numca tinha ouvido falar neste formato de data e isso tem uma certa urgencia.
Antecipadamente agradeço qualquer resposta.

Sem mais vou ficando por aqui.


Responder

Posts

19/05/2003

Carnette

Amigos estou precisando de uma ajuda muito grande estou precisando transformar uma data no formato dd/mm/aaaa para o formato de data juliana aaddd mas o problem é que numca tinha ouvido falar neste formato de data e isso tem uma certa urgencia. Antecipadamente agradeço qualquer resposta. Sem mais vou ficando por aqui.


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


Responder
Se alguem souber mais alguma coisa me ajude por favor.


Responder

20/05/2003

Jairroberto

Olá, Targino!

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


Responder
Tem como utilizar esta units no Delphi5 ?


Responder

20/05/2003

Jairroberto

Olá, Targino!

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


Responder

20/05/2003

Santosrpno

Targino, aqui é nonato, teste no delphi 5 e não deu certo, ao copiar a unit para o diret. \Lib do delphi5 ao compilar pede-se outra unit a Types que pede outras que só tem para versão 7.
Dai nã funciona, vou procurar mais e te mando um email.


Responder

20/05/2003

Jairroberto

Olá, Nonato!

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


Responder

21/05/2003

Santosrpno

Ok, Jair. Vou testar.
Agradeço a informação, precisamos de profissionais iguais a voçê, só assim teremos êxito em nossas metas.
Nonato.


Responder