Dinero reunido en período de tiempo con JavaScript

Calcular dinero reunido en un período de tiempo con JavaScript

En este post te mostraré un script muy simple que calcula cuánto dinero se reuniría en un período de tiempo si cada persona coopera una cantidad cada cierto tiempo.

Por ejemplo, cuánto dinero se puede reunir si cooperas 100 pesos cada semana desde el 1 de enero de 2021 hasta el 10 de abril de 2022.

El script te dirá cuánto dinero deberías llevar en cada fecha, sumando cada cooperación. Aunque esto suene simple puede servir para tandas, ahorros personales (así puedes saber cuánto tendrías si ahorras en un período), cooperaciones o cálculo de préstamos o deudas en un plazo.

Código para cálculo de dinero reunido en plazo

Comencemos viendo el código. Lo he hecho en JavaScript, así se puede ejecutar en Node o directamente en la consola del navegador (además, era lo único amigable que tenía a la mano cuando lo programé).

// https://parzibyte.me/blog
const inicio = new Date("2021-01-01T00:00:00");
const fin = new Date("2022-04-10T00:00:00");
const UN_DIA_EN_MILISEGUNDOS = 1000 * 60 * 60 * 24;
const INTERVALO_COOPERACION = UN_DIA_EN_MILISEGUNDOS * 7; // Cada semana
const COOPERACION = 500;
const formateadorFecha = new Intl.DateTimeFormat('es-MX', { dateStyle: 'medium', });
const formateadorDinero = new Intl.NumberFormat("en", { style: "currency", "currency": "MXN" });

let suma = 0;
for (let i = inicio; i <= fin; i = new Date(i.getTime() + INTERVALO_COOPERACION)) {
	suma += COOPERACION;
	console.log(`Para ${formateadorFecha.format(i)} se lleva ${formateadorDinero.format(suma)}`);
}

Comenzamos viendo que definimos las fechas del plazo en el que vamos a calcular cuánto dinero se reuniría. Aquí puedes cambiar los valores si quieres calcular otro período de tiempo.

Luego defino algunas constantes, por ejemplo, un día en milisegundos (ya que vamos a trabajar con fechas y objetos de tipo Date) que nos servirá más adelante en el intervalo de cooperación.

En cuanto al intervalo de cooperación podrías cambiarlo a tus necesidades. Por ejemplo, si fuera cada 30 días entonces sería multiplicarlo por 30, si fuera cada año sería multiplicarlo por 365 y así sucesivamente.

Nota: el monto que se ahorra o coopera está definido en la línea 6.

Más adelante en la línea 7 y 8 defino algunos formateadores que van a, como su nombre lo dice, formatear el dinero y la fecha. Eso es para hacerlo más entendible para el usuario.

Sumar dinero reunido en intervalo con JavaScript

Dinero reunido en período de tiempo con JavaScript
Dinero reunido en período de tiempo con JavaScript

La magia sucede en la línea 10 hasta la línea 14. Ahí defino la suma, luego hago un ciclo for con fechas, ya que las fechas se pueden representar como la cantidad de milisegundos transcurridos desde el 1 de enero de 1970.

Dentro del ciclo estoy haciendo la suma de la cooperación con el total reunido, imprimiendo la fecha actual y la cantidad reunida.

No te preocupes si las fechas no son exactas en cuanto al período, ya que el programa solo calcula mientras la fecha sea menor o igual que el fin.

Por ejemplo, para el código de arriba (el código, no la imagen), la última fecha será el 8 de abril aunque hayamos definido el fin en el 10 de abril. Esto es porque ya no se puede agregar otra semana sin ir más allá del 10 de abril.

Si algo no te ha quedado claro recuerda leer los posts que dejé citados a lo largo de este artículo. Para terminar te dejo con más posts de JavaScript en mi blog.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *