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

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.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Cancelar trabajo de impresión con C++

En este post te quiero compartir un código de C++ para listar y cancelar trabajos…

4 semanas hace

Copiar bytes de Golang a JavaScript con WebAssembly

Gracias a WebAssembly podemos ejecutar código de otros lenguajes de programación desde el navegador web…

2 meses hace

Imprimir PDF con Ghostscript en Windows de manera programada

Revisando y buscando maneras de imprimir un PDF desde la línea de comandos me encontré…

2 meses hace

Hacer pruebas en impresora térmica Bluetooth Android

Esta semana estuve recreando la API del plugin para impresoras térmicas en Android (HTTP a…

2 meses hace

Limpiar clave PEM

Hoy te enseñaré a extraer la cadena base64 de una clave PEM usando una función…

2 meses hace

Foco con Telegram, apagador de 3 vías, relevador y ESP8266

Encender un foco con un Bot de Telegram es posible usando una tarjeta como la…

2 meses hace