Como calcular datas no formato JULIANO

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Avatar do usuário
billy1943
Usuário Nível 4
Usuário Nível 4
Mensagens: 570
Registrado em: 12 Mai 2009 17:33
Localização: Bauru-SP

Como calcular datas no formato JULIANO

Mensagem por billy1943 »

Alguns bancos trabalham com datas no formato juliano, ou seja, quantos dias já foram decorridos do início do ano até à data informada.
No HSBC eles trabalham com a quantidade de dias mais um último algarismo que identifica o ano.
Assim, a função abaixo retorna um string de 4 bytes, onde os 3 primeiros são a quantidade de dias e o último o final do ano informado.

Código: Selecionar todos

FUNCTION data_julIana(vencimento)
local fim_ano, cdias
local ano       := year(vencimento)
local ano_ant := ano - 1
set century on
fim_ano := ctod("31/12/" + str(ano_ant,4))
cdias   := fim_ano - vencimento
cdias   := strzero(cdias,3,0)
cdias   += substr(str(ano,4),4,1)
return (cdias)
Editado pela última vez por Pablo César em 15 Nov 2011 09:21, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
O bom do computador é que ele resolve os problemas, sem nunca levantar nenhum.
Hoje atuo mais com Clipper 52E, e um pouquinho com XHarbour.
toya
Usuário Nível 3
Usuário Nível 3
Mensagens: 157
Registrado em: 26 Jul 2004 16:51
Localização: Campo Grande/MS - Brasil
Contato:

Como calcular datas no formato JULIANO

Mensagem por toya »

Se me permitem, a titulo de complemento, vejam:
http://www.toyanet.com.br/projetotuareg_artigos.php
Elcio Carlos
(toya)
Ahora en la version 6.5
toyasis@gmail.com (e-mail)
toyaskype (skype)
http://www.toyanet.com.br
https://www.facebook.com/profile.php?id=100009195956044

FWH 11.8+PellesC+xHarbour.org 1.2.1+SqlRDD
Clippeiro por opção, Fivewiner por amor ao Clipper...
2015 - Iniciante/Aprendiz de HMG...
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Como calcular datas no formato JULIANO

Mensagem por sygecom »

Olá Toya,
Seu link não está abrindo, por favor da uma revisada.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
toya
Usuário Nível 3
Usuário Nível 3
Mensagens: 157
Registrado em: 26 Jul 2004 16:51
Localização: Campo Grande/MS - Brasil
Contato:

Como calcular datas no formato JULIANO

Mensagem por toya »

Leonardo, testei agora e esta ok...
Tente novamente e se nao abrir me avise...

Mui grato...
Elcio Carlos
(toya)
Ahora en la version 6.5
toyasis@gmail.com (e-mail)
toyaskype (skype)
http://www.toyanet.com.br
https://www.facebook.com/profile.php?id=100009195956044

FWH 11.8+PellesC+xHarbour.org 1.2.1+SqlRDD
Clippeiro por opção, Fivewiner por amor ao Clipper...
2015 - Iniciante/Aprendiz de HMG...
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Como calcular datas no formato JULIANO

Mensagem por sygecom »

Desculpa Toya, não está abrindo com o Chrome, com o IE está abrindo.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Como calcular datas no formato JULIANO

Mensagem por Pablo César »

Eu estou utilizando o Google Chrome e abre normal.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
billy1943
Usuário Nível 4
Usuário Nível 4
Mensagens: 570
Registrado em: 12 Mai 2009 17:33
Localização: Bauru-SP

Como calcular datas no formato JULIANO

Mensagem por billy1943 »

Perdoem-me os colegas Clippeiros.
Eu inverti as variáveis na linha 7, onde o campo mais atual é o vencimento e o mais antigo é o fim do ano passado, em relação
a essa mesma data.
O código vai novamente abaixo, mesmo por ser muito reduzido e de fácil implantação onde for necessário.

Código: Selecionar todos

FUNCTION data_juliana(vencimento)
local fim_ano, cdias
local ano        := year(vencimento)
local ano_ant  := ano - 1
set century on
fim_ano := ctod("31/12/" + str(ano_ant,4))
cdias     := vencimento - fim_ano 
cdias     := strzero(cdias,3,0)
cdias     += substr(str(ano,4),4,1)
return (cdias)
O bom do computador é que ele resolve os problemas, sem nunca levantar nenhum.
Hoje atuo mais com Clipper 52E, e um pouquinho com XHarbour.
Responder