Calculo data vencimento depois de 2025

132 views
Skip to first unread message

Guilherme

unread,
Aug 3, 2021, 10:19:01 AM8/3/21
to JRimum Community
Boa tarde alguém já fez alteração 
para quando o fator de vencimento chegar em 9999 em 21.02.2025, deverá retornar automaticamente ao fator 1000 em 22.02.2025;

Solerman Kaplon

unread,
Aug 4, 2021, 7:08:40 AM8/4/21
to jrimum-c...@googlegroups.com
Bom dia Guilherme,

Estou mandando o que eu fiz em anexo.

Em 03/08/2021 11:19, Guilherme escreveu:
Boa tarde alguém já fez alteração 
para quando o fator de vencimento chegar em 9999 em 21.02.2025, deverá retornar automaticamente ao fator 1000 em 22.02.2025;
--
--
Você recebeu esta mensagem porque está inscrito no Grupo "JRimum
Community" nos Grupos do Google.
Para postar neste grupo, envie um e-mail para
jrimum-c...@googlegroups.com
ANTES DE POSTAR... leia:
https://groups.google.com/d/topic/jrimum-community/ULU8QHHgaBs/discussion
Para cancelar a sua inscrição neste grupo, envie um e-mail para
jrimum-communi...@googlegroups.com
Para ver mais opções, visite este grupo em
http://groups.google.com/group/jrimum-community?hl=pt-BR?hl=pt-BR

---
Você recebeu essa mensagem porque está inscrito no grupo "JRimum Community" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para jrimum-communi...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/jrimum-community/9509cc0f-5fd1-4fa7-8d20-9d39cdecc3a0n%40googlegroups.com.


FatorDeVencimento.java
TestFatorDeVencimento.java

Guilherme

unread,
Aug 4, 2021, 8:45:50 AM8/4/21
to JRimum Community
Obrigado ajudou muito, agora parcelar um boleto pro Cliente em 100x kkkk

Roberto Ferreira Júnior

unread,
Dec 1, 2021, 12:51:40 PM12/1/21
to JRimum Community
Fala aí!?

Esse cálculo é meio chato de fazer porque a reconfiguração não conta do início (zero) mas sim de 1000. Isso nos força a ter que fatiar o número para poder fazer os cálculos. Tentei desenhar uma imagem abaixo e espero que entenda. A parte que eu mencionei no início é chamada de A com valor 999. As outras fatias são B, com um fator multiplicativo y, e a última que chamei de C.

Vamos as explicações: 
1) A fatia A representa a parte que não entra na reconfiguração do fator de vencimento, ou seja, quando o número ultrapassa a fatia yB ele tem que começar a contar de 1000, ou seja, do início de B.

2) A fatia B é a fatia de valores que w (reconfigurado) poderá assumir após a reconfiguração. Isso porque o Fator de Vencimento só pode assumir o máximo de 4 dígitos. Por isso, se eu tiver um w de valor muito grande pode ser que y possa assumir valores maiores que 1. É uma espécie de LOOP dentro dos 4 dígitos, ou seja, quando ele chega nos 9999, volta para 1000 e assim vai.

3) A fatia C contém os valores que nós devemos evitar, ou seja, valores com 5 dígitos ou mais que iniciam em 10000 e vai até o infinito positivo (+α). O w original (para efeito de cálculo) sempre estará dentro do C mas eu tenho que achar uma forma de "arrastar" ele para dentro do B para achar o valor de w'.

FIGURA DE EXEMPLO:

              A                              (y)B                                       C
/------------^-----------\  /----------------^---------------\  /----------------^----------------\
0 ---------------> 999 | 1000 ---------------> 9999 | 10000 ------w-------->
                                                w' <---ARRASTAMENTO--- w    

FÓRMULA:

w' = ?
A = 999
B = 9999-A
w_sem_A = w - A

resto_divisao_w_sem_A_por_B = w_sem_A % B

w' = A + resto_divisao_w_sem_A_por_B

----------------------------------------------------------------------------
TENTA ISSO AÍ NA CALCULADORA COM VALOR 46525 para w:
999+((46525-999)mod(9999-999)) = 1525
                 |                
                w

Fiz umas modificações na classe FatorDeVencimento também, com adição de algumas variáveis e métodos adicionais para testes. Coloquei no anexo.

Espero ter ajudado!
FatorDeVencimento.java.txt

Guilherme

unread,
Dec 17, 2021, 6:22:57 PM12/17/21
to JRimum Community

Obrigado pela explicação Roberto
Reply all
Reply to author
Forward
0 new messages