brazilian-boletos
Version:
Biblioteca para geração de boletos bancários brasileiros.
33 lines (26 loc) • 842 B
JavaScript
const { calculaModulo11 } = require("./modulos.js");
const { formatarValorParaCodigo } = require("./formatacao.js");
/**
* @param {*} dados
* @returns {string}
*/
function calcularFatorVencimento(dados) {
const dataBase = new Date(2022, 4, 29);
const dataVencimento = dados.boleto.dataVencimento;
// Obtém a diferença em dias
const diferencaDias = Math.floor(
(dataVencimento.getTime() - dataBase.getTime()) / (1000 * 60 * 60 * 24)
);
if (diferencaDias < 0) {
throw new Error("A data de vencimento não pode ser anterior à data base.");
}
if (diferencaDias > 9999) {
throw new Error(
"A data de vencimento não pode ser mais de 9999 dias no futuro."
);
}
return diferencaDias.toString().padStart(4, "0");
}
module.exports = {
calcularFatorVencimento,
};