Estimar tiempo para terminar una lista de lectura
El estimador de tiempo de lectura responde a la pregunta que se hace todo lector con una pila de pendientes: ¿cuándo terminaré realmente todos estos libros?
Ejecutar — gratis
Introduzca su lista —cada libro con su número de páginas—, junto con las páginas que lee al día y la fecha de inicio, y obtendrá una fecha de finalización para cada libro, leído en orden, además del total de páginas, el total de días y la fecha en la que toda la lista quedará terminada. Sin cuenta y sin suposiciones: la misma aritmética se ejecuta gratis en su navegador y a través de la API.
Convierta una pila de pendientes en fechas concretas
Una lista de lectura parece manejable hasta que uno se pregunta cuándo termina. Veinte libros, unos de trescientas páginas, otros de ochocientas, y un ritmo que cambia según la semana: hacer ese cálculo de memoria es la forma en que las listas acaban sin terminarse jamás. La herramienta para estimar el tiempo para terminar una lista de lectura hace explícito el plan: usted envía los libros en el orden en que piensa leerlos, su ritmo diario en páginas y la fecha de hoy como inicio. Cada libro devuelve el número de días que necesita y la fecha exacta del calendario en la que cerrará su última página, suponiendo que mantenga el ritmo. Ver «esta novela termina el 12 de marzo, la siguiente el 2 de abril» convierte un montón de intenciones en un calendario al que puede reaccionar: acelerar, descartar un título o simplemente disfrutar sabiendo que el final es real.
Cómo se calcula la estimación
La aritmética es deliberadamente sencilla y honesta. Cada libro toma su número de páginas dividido entre su ritmo diario, redondeado hacia arriba a días completos: un libro de 304 páginas a 30 páginas al día necesita 11 días, porque el último día parcial también cuenta como día de lectura. Los días se acumulan a lo largo de la lista en orden, de modo que la fecha de fin de un libro es el día anterior al que el siguiente empieza a sumar páginas. La fecha de inicio cuenta como el día uno, y todas las fechas se calculan sobre el calendario gregoriano real, años bisiestos incluidos, así que una lista que empieza en febrero cae en las fechas correctas de marzo. El ritmo diario debe ser estrictamente positivo: un ritmo de cero significa que la lista nunca termina, y la herramienta lo indica con un error claro en lugar de un infinito silencioso. Los números de páginas deben ser enteros positivos y las fechas se validan de forma estricta, de modo que un «2026-02-30» mal escrito se rechaza en lugar de trasladarse en silencio a marzo.
Aproveche bien el resultado
Tome el resultado como una referencia, no como una profecía. Las semanas de lectura reales varían, por lo que el hábito más útil es volver a ejecutar la estimación al terminar cada libro con su lista actualizada y la fecha de hoy: las fechas se recalibran solas. También puede usarla para experimentos de planificación: suba el ritmo de 20 a 30 páginas al día y observe cómo se mueve la fecha final, o quite un libro largo y vea lo que le ahorra. La herramienta funciona por completo con aritmética determinista, sin almacenar su lista, y cuesta $0.002 por solicitud a través de la API, mientras que el mismo cálculo es gratuito en esta página. Los clubes de lectura la usan para fijar plazos realistas, los estudiantes para comprobar si un plan de estudios cabe en el semestre, y los lectores individuales para ver por fin la forma de su propia pila de pendientes. Como cada cifra se deriva de números que usted proporcionó, la estimación es fácil de defender y fácil de ajustar: cambie una entrada y todo el calendario se desplaza en consecuencia, sin nada oculto en el proceso.
Qué puede hacer con ella
Planifique su pila personal de lecturas pendientes
Introduzca su pila de libros por leer en orden y su ritmo diario honesto para ver la fecha del calendario en la que cada libro —y toda la lista— quedará realmente terminado.
Defina el calendario de un club de lectura
Compruebe cuántos días necesita cada título al ritmo habitual del grupo y elija fechas de reunión acordes con la realidad en lugar del optimismo.
Encaje las lecturas obligatorias en un semestre
Enumere los libros requeridos con su número de páginas y verifique si el programa se puede terminar antes de la fecha del examen a su velocidad de lectura.
Preguntas frecuentes
¿Cuánto cuesta?
$0.002 por solicitud a través de la API. También es gratis ejecutarlo en su navegador en esta página: es el mismo cálculo determinista.
¿Qué es el ritmo diario?
El número de páginas que usted lee al día por término medio. Debe ser estrictamente positivo; un ritmo de cero o negativo se rechaza porque la lista nunca terminaría.
¿Los libros se leen en orden?
Sí. Los libros se leen uno tras otro en el orden en que usted los enumera, y cada fecha de fin incluye los días dedicados a todos los libros anteriores.
¿Por qué un libro necesita un día aunque mi ritmo lo cubra por completo?
Los días se cuentan en unidades enteras, con el último día parcial redondeado hacia arriba. Todo libro necesita al menos un día de lectura, y un libro más largo que su ritmo toma el techo de páginas divididas entre el ritmo.
¿Tiene en cuenta los años bisiestos y la duración de los meses?
Sí. Las fechas se calculan sobre el calendario gregoriano real a partir de la fecha de inicio que usted proporcione, de modo que la duración de los meses y los años bisiestos se manejan correctamente.
¿Se almacena mi lista de lectura?
No. La lista se procesa en memoria y se descarta; solo se devuelven las fechas calculadas.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/life/reading-list-time-estimate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"books":[{"title":"Dune","pages":412},{"title":"The Left Hand of Darkness","pages":304}],"pages_per_day":30,"start_date":"2026-07-25"}'const res = await fetch("https://api.kit.forhosting.com/life/reading-list-time-estimate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"books": [
{
"title": "Dune",
"pages": 412
},
{
"title": "The Left Hand of Darkness",
"pages": 304
}
],
"pages_per_day": 30,
"start_date": "2026-07-25"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/life/reading-list-time-estimate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"books": [
{
"title": "Dune",
"pages": 412
},
{
"title": "The Left Hand of Darkness",
"pages": 304
}
],
"pages_per_day": 30,
"start_date": "2026-07-25"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/life/reading-list-time-estimate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"books":[{"title":"Dune","pages":412},{"title":"The Left Hand of Darkness","pages":304}],"pages_per_day":30,"start_date":"2026-07-25"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"books":[{"title":"Dune","pages":412},{"title":"The Left Hand of Darkness","pages":304}],"pages_per_day":30,"start_date":"2026-07-25"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/life/reading-list-time-estimate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"books": [
{
"title": "Dune",
"pages": 412
},
{
"title": "The Left Hand of Darkness",
"pages": 304
}
],
"pages_per_day": 30,
"start_date": "2026-07-25"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "life.reading_list_time_estimate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_items | 500 |
max_abs | 10000000 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |