Data Juliana

Um recurso muitas vezes importante em um sistema, é a geração da data atual no formato Juliano.

Calendário 300x200 Data JulianaA data Juliana é conhecida por contar os dias ininterruptamente do primeiro dia do ano (dia 1) até o o último (dia 365 ou 366).

Mas, afinal, qual o motivo que eu iria querer a data Juliana de determinado dia, se eu tenho o calendário Gregoriano (o que nós conhecemos), que já me satisfaz e é mais fácil de entender?

A resposta é simples: Geração de protocolos, códigos, matrículas etc.

Um exemplo bem prático é o que costumamos ver em operadoras de cartões de crédito e outras empresas que definem seus números de protocolos com base em uma série de fatores.

Um tipo de protocolo bastante usado, por exemplo, é o estilo ano.data juliana.código do cliente.código do pedido, gerando algo do tipo 2008.102.010.55.

Mas, chega de enrolação, aqui eu mostro o código (em Delphi) para a geração da Data Juliana que utilizo normalmente nos meus sistemas:

{

********************************************************************************
** Função que tem por objetivo converter a data Gregoriana informada,                                  **
** para a data Juliana.                                                                                                                                        **
**                                                                                                                                                                                 **
** Escrita por:                                                                                                                                                        **
** Giovanni Grimaldi Torelly – 23:00 – 31/07/2004                                                                           **
**                                                                                                                                                                                 **
********************************************************************************
}

function Data_Juliana (Data_Atual: TDateTime): String;
var
Ano, Mes, Dia: Word;
Data_Final, Data_Inicial: String;
Resultado: Real;
begin
DecodeDate (Date, Ano, Mes, Dia);
Data_Final := DateToStr (Data_Atual);
Data_Inicial := ’31/12/’ + IntToStr (Ano – 1);
Resultado := StrToDate (Data_Final) – StrToDate (Data_Inicial);
Result := FloatToStr (Resultado);
end;

Para que a função seja executada, basta chamar Data_Juliana(data)

Espero que este código tenha sido útil.

Em breve, pretendo postar mais códigos.

Enviado por | 11 de abril de 2008 às 2:09 | 1 Comentário   
Tempo estimado de leitura 1:05 minutos | 2.814 visualizações
Gostou do nosso conteúdo?
Assine o nosso FEED Assine-o através de feed RSS!
Receba as atualizações por E-Mail Receba as atualizações por E-Mail.