Stimare il tempo per finire una lista di lettura
Lo stimatore del tempo di lettura risponde alla domanda che ogni lettore con un arretrato si pone: quando finirò davvero tutti questi libri?
Esegui gratis nel browser
Le basta fornire la Sua lista — ogni libro con il numero di pagine — insieme a quante pagine legge al giorno e alla data di inizio, e lo strumento restituisce una data di completamento per ogni libro, letto in ordine, oltre alle pagine totali, ai giorni totali e alla data in cui l'intera lista sarà conclusa. Nessun account, nessuna congettura: la stessa aritmetica viene eseguita gratuitamente nel Suo browser e tramite l'API.
Trasformare un vago arretrato in date concrete
Una lista di lettura sembra gestibile finché non ci si chiede quando finirà. Venti libri, alcuni da trecento pagine, altri da ottocento, e un ritmo che cambia di settimana in settimana: fare quel calcolo a mente è il modo in cui le liste restano silenziosamente incompiute. Lo strumento di stima tempo per finire lista di lettura rende il piano esplicito: Lei invia i libri nell'ordine in cui intende leggerli, il Suo ritmo quotidiano in pagine e la data di oggi come inizio. Ogni libro torna con il numero di giorni che richiede e la data esatta del calendario in cui chiuderà l'ultima pagina, supponendo che mantenga il ritmo. Vedere 'questo romanzo finisce il 12 marzo, il prossimo il 2 aprile' trasforma un mucchio di intenzioni in un programma a cui può reagire: accelerare, eliminare un titolo o semplicemente godere della certezza che la fine è reale.
Come viene calcolata la stima
L'aritmetica è volutamente semplice e onesta. Ogni libro richiede il proprio numero di pagine diviso per il Suo ritmo quotidiano, arrotondato per eccesso a giorni interi: un libro di 304 pagine a 30 pagine al giorno richiede 11 giorni, perché anche l'ultimo giorno parziale conta come giornata di lettura. I giorni si accumulano lungo la lista in ordine, quindi la data di fine di un libro è il giorno prima che il successivo inizi ad accumulare pagine. La data di inizio conta come primo giorno e ogni data è calcolata sul vero calendario gregoriano, anni bisestili inclusi, così una lista iniziata a febbraio cade sulle date corrette di marzo. Il ritmo quotidiano deve essere strettamente positivo: un ritmo pari a zero significa che la lista non finirà mai, e lo strumento lo segnala con un errore chiaro invece di un infinito silenzioso. I numeri di pagine devono essere interi positivi e le date sono convalidate rigorosamente, quindi un '2026-02-30' digitato per errore viene rifiutato anziché essere spostato silenziosamente a marzo.
Usare bene il risultato
Consideri l'output come una base di riferimento, non una profezia. Le settimane di lettura reali variano, quindi l'abitudine più utile è rieseguire la stima dopo aver terminato ogni libro con la lista aggiornata e la data di oggi: le date si ricalibrano da sole. Può anche usarlo per esperimenti di pianificazione: aumentare il ritmo da 20 a 30 pagine al giorno e osservare come si sposta la data finale, oppure rimuovere un libro lungo e vedere quanto Le costa. Lo strumento funziona interamente con aritmetica deterministica senza memorizzare la Sua lista, e costa $0.002 per richiesta tramite l'API, mentre lo stesso calcolo è gratuito su questa pagina. I club di lettura lo usano per fissare scadenze realistiche, gli studenti per verificare se un programma rientra nel semestre, e i singoli lettori per vedere finalmente la forma del proprio arretrato. Poiché ogni cifra deriva dai numeri che ha fornito Lei, la stima è facile da difendere e da adattare: cambi un input e l'intero programma si sposta di conseguenza, senza nulla di nascosto nel mezzo.
Casi d'uso
Pianificare un arretrato di lettura personale
Inserisca la Sua pila di libri da leggere in ordine e il Suo onesto ritmo quotidiano per vedere la data del calendario in cui ogni libro — e l'intera lista — sarà davvero terminato.
Definire il calendario di un club di lettura
Verifichi quanti giorni richiede ogni titolo al ritmo tipico del gruppo e scelga date di incontro che corrispondano alla realtà invece che all'ottimismo.
Far rientrare le letture obbligatorie in un semestre
Elenchi i libri richiesti con il numero di pagine e verifichi se il programma è completabile prima della data dell'esame alla Sua velocità di lettura.
Domande frequenti
Quanto costa?
$0.002 per richiesta tramite l'API. È anche gratuito eseguirlo nel browser su questa pagina — lo stesso calcolo deterministico.
Che cos'è il ritmo quotidiano?
Il numero di pagine che legge in media al giorno. Deve essere strettamente positivo; un ritmo pari a zero o negativo viene rifiutato perché la lista non finirebbe mai.
I libri vengono letti in ordine?
Sì. I libri sono letti uno dopo l'altro nell'ordine in cui li elenca, e ogni data di completamento include i giorni trascorsi su tutti i libri precedenti.
Perché un libro richiede un giorno anche se il mio ritmo lo copre interamente?
I giorni sono conteggiati in unità intere con l'ultimo giorno parziale arrotondato per eccesso. Qualsiasi libro richiede almeno un giorno di lettura, e un libro più lungo del Suo ritmo richiede il tetto di pagine diviso per il ritmo.
Tiene conto degli anni bisestili e delle lunghezze dei mesi?
Sì. Le date sono calcolate sul vero calendario gregoriano a partire dalla data di inizio che fornisce, quindi le lunghezze dei mesi e gli anni bisestili sono gestiti correttamente.
La mia lista di lettura viene memorizzata?
No. La lista viene elaborata in memoria e scartata; vengono restituite solo le date calcolate.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo 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)Esempio di richiesta
{
"books": [
{
"title": "Dune",
"pages": 412
},
{
"title": "The Left Hand of Darkness",
"pages": 304
}
],
"pages_per_day": 30,
"start_date": "2026-07-25"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "life.reading_list_time_estimate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_items | 500 |
max_abs | 10000000 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |