2.1 Una tasa necesita tiempo
En el tema anterior calculamos la tasa como la variación relativa de un capital. Si $100.000 se transforman en $112.000, obtenemos una tasa del 12 %. Pero ese número queda incompleto mientras no indiquemos cuánto tiempo separa ambos capitales.
Un aumento del 12 % en un mes no describe la misma operación que un aumento del 12 % en un año. El porcentaje coincide, pero la velocidad con la que cambia el capital es diferente.
Idea central: el período es parte de la tasa. Para interpretar un valor como “2 %” debemos saber si significa 2 % diario, mensual, trimestral, anual o correspondiente a otro intervalo.
2.2 Tres datos que no deben confundirse
Duración de la operación
Tiempo total transcurrido entre la fecha inicial y la fecha final.
Período de la tasa
Intervalo al que corresponde el valor declarado de la tasa.
Cantidad de períodos
Número de períodos de tasa contenidos en la duración de la operación.
Por ejemplo, una operación puede durar 180 días y utilizar una tasa correspondiente a períodos de 30 días. En ese caso, la duración es 180 días, el período de la tasa es 30 días y la cantidad de períodos es 6.
2.3 Fechas, intervalo y línea de tiempo
La fecha inicial y la fecha final ubican los capitales. La diferencia entre ambas determina el intervalo de la operación:
En la línea de tiempo, desde t0 hasta t2 transcurren dos períodos. Las etiquetas t0, t1 y t2 representan posiciones temporales; no son necesariamente días concretos ni indican por sí mismas cuánto dura cada período.
2.4 La ecuación de unidades
Cuando la duración total y el período de la tasa están expresados en la misma unidad, la cantidad de períodos se obtiene mediante una división:
Si la operación dura 75 días y la tasa corresponde a períodos de 30 días:
Las unidades “día” se simplifican y el resultado expresa una cantidad de períodos. Que n sea fraccionario no indica un error, pero el modo de usar esa fracción dependerá del régimen financiero adoptado. No debemos elegir una fórmula antes de conocerlo.
2.5 Primero hay que unificar las unidades
No se puede dividir directamente una duración en meses por un período expresado en días. Primero deben llevarse ambos datos a una unidad común definida por el problema.
| Duración | Período de la tasa | Cantidad de períodos |
|---|---|---|
| 90 días | 30 días | 90 / 30 = 3 |
| 24 meses | 6 meses | 24 / 6 = 4 |
| 3 años | 1 año | 3 / 1 = 3 |
| 10 semanas | 2 semanas | 10 / 2 = 5 |
Una igualdad como “1 mes = 30 días” no es universal. Puede ser una convención válida para cierto cálculo, pero debe declararse. Un mes calendario puede tener 28, 29, 30 o 31 días.
2.6 Períodos calendario y períodos de duración fija
La palabra “mes” puede referirse a un cambio de fecha calendario, como del 15 de enero al 15 de febrero, o a una duración convencional, como 30 días. Ambas interpretaciones pueden producir resultados diferentes.
- Período calendario: avanza por días, meses o años del calendario y conserva reglas como la distinta longitud de los meses.
- Período de duración fija: se define mediante una cantidad exacta de días, por ejemplo 30, 90 o 365.
- Período contractual: utiliza la definición acordada para la operación, que debe formar parte de los datos.
No existe una conversión correcta sin una convención explícita. El programa debe recibir esa decisión o recuperarla de una regla conocida; no debería inventarla silenciosamente.
2.7 Tasas con el mismo número y distinto período
Las frases siguientes no son equivalentes:
- 2 % por día.
- 2 % cada 30 días.
- 2 % mensual calendario.
- 2 % anual.
El valor numérico es 2 % en todos los casos, pero cada tasa se vincula con un intervalo diferente. Tampoco podemos multiplicar o potenciar automáticamente una tasa para cambiar su período: antes debemos identificar si el régimen es simple, compuesto u otro. Esa distinción se desarrollará más adelante.
2.8 Fechas en JavaScript
JavaScript permite representar fechas con Date, pero una fecha también contiene decisiones sobre zona horaria. Para contar días civiles entre valores ingresados como AAAA-MM-DD, podemos construir ambas fechas en UTC y evitar que un cambio horario altere la diferencia.
const MILISEGUNDOS_POR_DIA = 24 * 60 * 60 * 1000;
function fechaUtc(texto) {
const [anio, mes, dia] = texto.split("-").map(Number);
return Date.UTC(anio, mes - 1, dia);
}
const inicio = fechaUtc("2026-01-01");
const fin = fechaUtc("2026-03-17");
const dias = (fin - inicio) / MILISEGUNDOS_POR_DIA;
console.log("Días transcurridos:", dias); // 75
Este cálculo cuenta días transcurridos entre dos fechas civiles. No define por sí solo cómo una entidad computa intereses ni reemplaza las convenciones establecidas para una operación.
2.9 Laboratorio: contar períodos
Elegí las fechas de la operación, la duración convencional de cada período y el valor de la tasa. El laboratorio identifica el plazo, pero deliberadamente no calcula intereses.
Ubicar una tasa dentro de la operación
Modelo de períodos con una cantidad fija de días.
La operación contiene 2,5 períodos de 30 días.
Límite del modelo: el laboratorio usa períodos de duración fija. No interpreta “mes” ni “año” como unidades calendario y no convierte la tasa a otro período.
2.10 Una función para calcular la cantidad de períodos
La lógica puede separarse de la interfaz mediante una función que valide las fechas y la duración elegida:
function convertirFechaUtc(texto) {
if (!/^\d{4}-\d{2}-\d{2}$/.test(texto)) {
throw new TypeError("La fecha debe tener el formato AAAA-MM-DD");
}
const [anio, mes, dia] = texto.split("-").map(Number);
const instante = Date.UTC(anio, mes - 1, dia);
const fecha = new Date(instante);
const coincide = fecha.getUTCFullYear() === anio
&& fecha.getUTCMonth() === mes - 1
&& fecha.getUTCDate() === dia;
if (!coincide) {
throw new TypeError("La fecha no existe en el calendario");
}
return instante;
}
function calcularPeriodos(fechaInicio, fechaFin, diasPorPeriodo) {
const milisegundosPorDia = 24 * 60 * 60 * 1000;
const inicio = convertirFechaUtc(fechaInicio);
const fin = convertirFechaUtc(fechaFin);
if (fin < inicio) {
throw new RangeError("La fecha final no puede ser anterior");
}
if (!Number.isFinite(diasPorPeriodo) || diasPorPeriodo <= 0) {
throw new RangeError("Los días por período deben ser positivos");
}
const diasTranscurridos = (fin - inicio) / milisegundosPorDia;
return {
diasTranscurridos,
cantidadPeriodos: diasTranscurridos / diasPorPeriodo
};
}
console.log(calcularPeriodos("2026-01-01", "2026-03-17", 30));
El resultado es { diasTranscurridos: 75, cantidadPeriodos: 2.5 }. La función no recibe una tasa porque su única responsabilidad es medir el tiempo bajo la convención indicada.
2.11 Representar una tasa con contexto
Guardar solamente el número 0.02 no alcanza. Un objeto puede conservar el valor, la forma de expresión y el período al que corresponde:
const tasa = {
valor: 0.02,
expresion: "tantoPorUno",
periodo: {
tipo: "duracionFija",
cantidad: 30,
unidad: "dia"
}
};
console.log(
`${tasa.valor * 100}% cada ${tasa.periodo.cantidad} días`
);
Más adelante agregaremos propiedades como el régimen y la frecuencia de capitalización. Modelar el contexto desde el comienzo reduce el riesgo de combinar tasas incompatibles.
2.12 Errores frecuentes
- Omitir el período: “5 %” no describe una tasa completa.
- Confundir plazo y cantidad de períodos: 180 días es una duración; 6 es la cantidad de períodos de 30 días.
- Mezclar unidades: dividir meses por días sin una regla de conversión produce un resultado ambiguo.
- Suponer que todo mes tiene 30 días: puede ser una convención, pero no una propiedad del calendario.
- Ignorar la zona horaria: puede generar diferencias inesperadas al trabajar con fechas y horas.
- Convertir tasas antes de conocer el régimen: la regla correcta depende de cómo evoluciona el capital.
2.13 Ejercicio propuesto
Una operación comienza el 1 de abril de 2026 y termina el 30 de junio de 2026. Se declara una tasa de 1,2 % por cada período de 15 días.
- Calculá los días transcurridos entre ambas fechas.
- Identificá la duración de un período de tasa.
- Calculá cuántos períodos contiene la operación.
- Escribí una descripción completa de la tasa.
- Representá los datos con un objeto JavaScript.
Ver solución
Entre ambas fechas transcurren 90 días. Como cada período dura 15 días, la operación contiene 6 períodos. La tasa se describe como “1,2 % por cada período de 15 días”.
const operacion = {
fechaInicio: "2026-04-01",
fechaFin: "2026-06-30",
tasa: {
valor: 0.012,
diasPorPeriodo: 15
}
};
const milisegundosPorDia = 24 * 60 * 60 * 1000;
const inicio = Date.UTC(2026, 3, 1);
const fin = Date.UTC(2026, 5, 30);
const dias = (fin - inicio) / milisegundosPorDia;
const periodos = dias / operacion.tasa.diasPorPeriodo;
console.log({ dias, periodos }); // { dias: 90, periodos: 6 }
El ejercicio identifica el tiempo, pero no calcula un monto. Para hacerlo todavía sería necesario indicar el capital y el régimen financiero aplicable.
2.14 Ideas para recordar
- El período forma parte de la definición de una tasa.
- La duración total, el período de la tasa y la cantidad de períodos son datos diferentes.
- Con unidades compatibles,
n = duración total / duración del período. - Un período calendario no siempre equivale a una cantidad fija de días.
- Las convenciones temporales deben declararse y conservarse junto con la tasa.
- No se debe convertir ni aplicar una tasa sin conocer también su régimen.
En el próximo tema estudiaremos porcentaje, tanto por uno y puntos básicos, distintas formas de expresar numéricamente una tasa.