Data Juliana

353 views
Skip to first unread message

Nel

unread,
Dec 7, 2009, 6:06:26 AM12/7/09
to JRimum Community
Boa dia a todos. Será meu primeiro post, caso eu o utilize da forma
incorreta peço desculpas a todos. Bem, vou ao problema. O que está
ocorrendo diz respeito a data Juliana, para imprimir a data Juliana eu
utilizo o método estático da classe Util4Banco da seguinte forma:

Util4Banco.calculceFatorDeVencimento(java.util.Date);

Este método me retorna a data no formato Juliano perfeito? Bem, a data
que eu utilizei, por exemplo, é 15/08/2009 onde o formato em Juliano
seria 2279. Entretanto, o retorno do método está sendo 4330.

Estou utilizando de forma errônea o método ou o há um erro no calculo
mesmo?
Desde já eu agradeço a atenção de todos.

Um forte abraço.


Leonel

Gilmar P.S.L.

unread,
Dec 7, 2009, 7:27:59 AM12/7/09
to jrimum-c...@googlegroups.com

Olá Leonel,

Em relação ao seu post, tranqüilo, ta tudo correto.

Em relação a sua dúvida...

Bom, acho que vale explicar que o fator de vencimento representa a quantidade de dias decorridos da data base à data de vencimento do título.
Ou seja, é o resultado da subtração entre a data do vencimento do título e a DATA BASE, fixada em 07.10.1997.

* A data base é fixada pela FEBRABAN (Federação Brasileira de Bancos)

Exemplo: 

08/10/1997 terá fator de vencimento = 1
03/07/2000 terá fator de vencimento = 1000

Já o seu caso, o correto é mesmo 4330. O que significa que são 4330 dias decorridos da data base.

Espero que tenha ajudado, qualquer coisa é só falar.
On 7 dez, 08:06, Nel <nel...@hotmail.com> wrote: > Boa dia a todos. Será meu primeiro post, caso eu o utilize da forma > incorreta peço desculpas a todos. Bem, vou ao problema. O que está > ocorrendo diz respeito a data Juliana, para imprimir a data Juliana eu > utilizo o método estático da classe Util4Banco da seguinte forma: > > Util4Banco.calculceFatorDeVencimento(java.util.Date); > > Este método me retorna a data no formato Juliano perfeito? Bem, a data > que eu utilizei, por exemplo, é 15/08/2009 onde o formato em Juliano > seria 2279. Entretanto, o retorno do método está sendo 4330. > > Estou utilizando de forma errônea o método ou o há um erro no calculo > mesmo? > Desde já eu agradeço a atenção de todos. > > Um forte abraço. > > Leonel


-- 
Gilmar P.S.L.
JRimum Developer

Nel

unread,
Dec 7, 2009, 7:36:57 AM12/7/09
to JRimum Community
Bom dia.

Vejo que são bem anteciosos. Isso é ótimo.
A minha dúvida com certeza foi esclarecida. Desde já agradeço a sua
colaboração e atenção.

Muito obrigado.
Abraços,

Att,


Leonel
> *JR*imum *D*eveloper

Nel

unread,
Dec 7, 2009, 7:44:51 AM12/7/09
to JRimum Community
Perfeito. O que ocorre é que o banco HSBC não está validando o boleto
devido ao fato da data estar no formato incorreto. O que a
documentação deles informa é:

A data de vencimento no formato juliano somente deve ser utilizada
quando o cliente optar
pelo uso do Tipo Identificador “4” no Código do Documento, com retorno
dos 3 dígitos no
arquivo magnético e no demonstrativo de liquidação (condição
cadastral).
As três primeiras posições correspondem à data de vencimento informada
através do mês
juliano. Exemplos:
001 = corresponde a 01 de janeiro.
042 = corresponde a 11 de fevereiro.

Em outras palavras, aparentemente eles utilizam a data de vencimento
para o calculo no formato Juliano e não o fator de vencimento. Teria
alguma sugestão?
Novamente eu agradeço a atenção.

Muito obrigado.

Att,

Leonel

On 7 dez, 10:27, "Gilmar P.S.L." <gilmat...@gmail.com> wrote:
> *JR*imum *D*eveloper

Gilmar P.S.L.

unread,
Dec 7, 2009, 8:00:45 AM12/7/09
to jrimum-c...@googlegroups.com
Opa, que nada Leonel, estamos aí pra ajudar...

Olha pelo que entendi essa especificação do HSBC utiliza o formato juliano para os dias do ano.

Então, se for isso mesmo, vc pode tentar o seguinte exemplo:

                Calendar c = Calendar.getInstance();
c.set(2009, Calendar.AUGUST, 15);
int diaDoAno = c.get(Calendar.DAY_OF_YEAR);
System.out.println(diaDoAno);

Beleza ok? Acho que bastar usar os dias do ano pela classe java.util.Calendar.
Qualquer coisa estamos aí!

Nel

unread,
Dec 7, 2009, 8:04:20 AM12/7/09
to JRimum Community
Ah perfeito. Mas como eu seto este valor na geração do boleto, ou
seja, no bopepo? Já que eu preciso inserir este valor na linha
digitavél e no código de barra.
Mais uma vez, muito obrigado.

Abraços.
> *JR*imum *D*eveloper

Gilmar P.S.L.

unread,
Dec 7, 2009, 8:18:18 AM12/7/09
to jrimum-c...@googlegroups.com
Humm,...

O problema é que todos os boletos que trabalhamos até agora operam com o fator de vencimento.
Então, no bopepo sempre que vc setar um vencimento ele vai por o fator no código de barras.

Faça o seguinte, mande essa especificação que vc tem do HSBC que nós vamos ver aqui as particularidades..
Em seguida mandamos sua solução. Pode ser?

Nel

unread,
Dec 7, 2009, 8:45:25 AM12/7/09
to JRimum Community
Com certeza. Já anexei o documento ao grupo. O documento chama-se
cnrbarra.pdf. Como eu disse, primeira vez que eu posto então peço
desculpas caso eu tenho efetuado o upload da forma incorreta. Muito
obrigado pela sua atenção.

Abraços.

Att,

Leonel
> *JR*imum *D*eveloper

Gilmar P.S.L.

unread,
Dec 7, 2009, 10:12:03 PM12/7/09
to jrimum-c...@googlegroups.com
Opa grande Leonel,

Cara, valeu aí pela iniciativa..., a próxima versão já sairá com o boleto HSBC de acordo com o manual que vc "subiu" aqui.

É o seguinte, vc não precisa setar o fator de vencimento, ele já é calculado pelo bopepo. Isso na parte invariável do código de barras é claro.

Já para o campo livre do HSBC vc teria que implementar a interface CampoLivre para ser utilizada na geração do código de barras. Isso por que a implementação atual do HSBC não leva em conta o formato juliano. (BUG, já que nunca niguém testou :-)

Resta saber se o tipo de identificador do "nosso número" que vc irá utilizar é do Tipo 4 ou 5, como diz no manual. Vc já fez sabe como calcular?

Nel

unread,
Dec 8, 2009, 10:04:11 AM12/8/09
to JRimum Community
Boa tarde Gilmar.

Que bom, com as novas atualizações será mais fácil a quem já utiliza o
bopepo e quem pretende utilizar (recomendo).
Entendo, então, o identificador é do Tipo 4. Em relação a
implementação desta interface, para tal, eu não teria que ter acesso
ao código fonte ou simplesmente posso criar uma classe que a
implemente?

Abraços! E mais uma vez, muito obrigado pela atenção.

Gilmar P.S.L.

unread,
Dec 8, 2009, 10:20:12 AM12/8/09
to jrimum-c...@googlegroups.com
Fala rapaz! :-)

É verdade, notei pela classe que vc mencionou Util4Banco, que vc estava utilizando uma versão anterior

Bom a versão atual é a 0.2.2

Dá uma olhada em:

http://jrimum.nordestefomento.com.br/jrimum/wiki/Projeto/Download

Lá tem os fontes também :-)

Aproveitando sua boa vontade (rsrsrs), se quiser dar uma avaliada no site do projeto:

http://jrimum.nordestefomento.com.br/bopepo

e mandar suas considerações, ..., agradecemos :-D.

Bom, nos fontes tem um pacote de exemplos, lá vc encontra um exemplo do campo livre para o banco sicredi...
Vc teria que fazer um para o hsbc, ou corrigir o já existente.

Então é isso, qualquer coisa tamo aí.

Nel

unread,
Dec 8, 2009, 11:08:05 AM12/8/09
to JRimum Community
Está certo. Pode deixar, no momento está um pouco corrido as coisas
por aqui, mas a noite ou amanhã faço as minhas considerações com
certeza.
Gilmar, realmente, obrigado pela sua paciência, atenção e ajuda ok?

Assim que solucionar esta questão eu posto aqui a não ser que vocês
façam isso antes não é verdade? rsrs...
Forte abraço!

Até!

On 8 dez, 13:20, "Gilmar P.S.L." <gilmat...@gmail.com> wrote:
> Fala rapaz! :-)
>
> É verdade, notei pela classe que vc mencionou Util4Banco, que vc estava
> utilizando uma versão anterior
>
> Bom a versão atual é a *0.2.2*
>
> Dá uma olhada em:
>
> http://jrimum.nordestefomento.com.br/jrimum/wiki/Projeto/Download
>
> Lá tem os fontes também :-)
>
> Aproveitando sua boa vontade (rsrsrs), se quiser dar uma avaliada no site do
> projeto:
>
> http://jrimum.nordestefomento.com.br/bopepo
>
> e mandar suas considerações, ..., agradecemos :-D.
>
> Bom, nos fontes tem um pacote de exemplos, lá vc encontra um exemplo do
> campo livre para o banco sicredi...
> Vc teria que fazer um para o hsbc, ou corrigir o já existente.
>
> Então é isso, qualquer coisa tamo aí.
> --
> Gilmar P.S.L.
> *JR*imum *D*eveloper

Gilmar P.S.L.

unread,
Dec 8, 2009, 12:39:44 PM12/8/09
to jrimum-c...@googlegroups.com
Ok, tranquilo...

Nós que ficamos felizes com sua participação...
Paciência? Que nada..., super legal poder ajudar.., tranquilo.

É verdade, se tivermos um tempo colocaremos sim..., tah muita correria...
O projeto está ficando cada vez mais sólido e novas demandas põem a prova nossa capacidade.
Mas tentaremos sim, o mais rápido possível realizar mais essa tarefa :-)

Vamo lá, continuemos nosso desenvolvimento

Abraço.

Nel

unread,
Dec 9, 2009, 8:04:57 AM12/9/09
to JRimum Community
Bom dia Gilmar.

Então, as coisas andam bem corridas! O problema que citei foi
resolvido da seguinte forma. Eu alterei
a classe CLHsbcCNR, na verdade, alterei somente a linha que utiliza o
método da classe Util4Banco e
adicionei o meu método, a principio funcionou perfeitamente, ainda
haverão mais testes, mas até o momento
está tudo ok. Segui a sua sugestão e utilizei o Calendar, segue o
método:

private int dateToJulianFormat(Date vencimento) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(vencimento);

String totalDias = String.valueOf(calendar.get
(calendar.DAY_OF_YEAR));
String ano = String.valueOf(calendar.get(calendar.YEAR));
//pega o último caracter do ano
char last = ano.charAt(ano.length()-1);
int dataVencimentoFormatoJuliano = Integer.parseInt(totalDias +
last);

return dataVencimentoFormatoJuliano;
}

Utilizei de parsers, pois, obviamente, se eu deixasse os valores como
inteiros seria mais dificíl (no meu ponto de vista)
de utilizar da concatenação. Deixando o meu depoimento, quero
parabenizar a todos os colaboradores do projeto pela
iniciativa e participação. O site é bem claro e fácil de compreender,
bem como deixa disponível todos os .jars necessários
para quem deseja iniciar sua vida no boleto! rs...
Os códigos de exemplos são bem claros e estão muito bem comentandos, o
que torna mais fácil e simples a compreensão.
A ideia de disponibilizar o código torna mais fácil aqueles que
desejam personalizar/adequar o boleto as suas necessidades.

Mais uma vez, eu agradeço atenção de todos.
Abraços!

Reply all
Reply to author
Forward
0 new messages