Página 1 de 1

Como calcular datas no formato JULIANO

Enviado: 14 Nov 2011 23:12
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)

Como calcular datas no formato JULIANO

Enviado: 15 Nov 2011 14:14
por toya
Se me permitem, a titulo de complemento, vejam:
http://www.toyanet.com.br/projetotuareg_artigos.php

Como calcular datas no formato JULIANO

Enviado: 15 Nov 2011 15:25
por sygecom
Olá Toya,
Seu link não está abrindo, por favor da uma revisada.

Como calcular datas no formato JULIANO

Enviado: 15 Nov 2011 16:48
por toya
Leonardo, testei agora e esta ok...
Tente novamente e se nao abrir me avise...

Mui grato...

Como calcular datas no formato JULIANO

Enviado: 15 Nov 2011 17:43
por sygecom
Desculpa Toya, não está abrindo com o Chrome, com o IE está abrindo.

Como calcular datas no formato JULIANO

Enviado: 15 Nov 2011 21:18
por Pablo César
Eu estou utilizando o Google Chrome e abre normal.

Como calcular datas no formato JULIANO

Enviado: 17 Nov 2011 18:14
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)