Estimer le temps pour finir une liste de lecture
L'estimateur de temps de lecture répond à la question que se pose tout lecteur ayant une pile en attente : quand vais-je réellement terminer tous ces livres ?
Lancer gratuitement
Fournissez-lui votre liste — chaque livre avec son nombre de pages — ainsi que le nombre de pages que vous lisez par jour et la date à laquelle vous commencez, et il renvoie une date de fin pour chaque livre, lu dans l'ordre, accompagnée du total de pages, du total de jours et de la date à laquelle toute la liste sera terminée. Aucun compte, aucune approximation : le même calcul s'exécute gratuitement dans votre navigateur et via l'API.
Transformer une pile floue en dates concrètes
Une liste de lecture semble gérable jusqu'à ce que l'on se demande quand elle se termine. Vingt livres, certains de trois cents pages, d'autres de huit cents, et un rythme qui varie selon les semaines : faire ce calcul de tête, c'est ainsi que les listes deviennent discrètement inachevées. L'outil estimer le temps pour finir sa liste de lecture rend le plan explicite : vous envoyez les livres dans l'ordre où vous comptez les lire, votre rythme quotidien en pages et la date du jour comme point de départ. Chaque livre revient avec le nombre de jours qu'il exige et la date calendaire exacte à laquelle vous en tournerez la dernière page, à condition de tenir le rythme. Voir « ce roman se termine le 12 mars, le suivant le 2 avril » transforme un amas d'intentions en un calendrier auquel vous pouvez réagir : accélérer, abandonner un titre, ou simplement savourer de savoir que la fin est réelle.
Comment l'estimation est calculée
L'arithmétique est volontairement simple et honnête. Chaque livre prend son nombre de pages divisé par votre rythme quotidien, arrondi au jour entier supérieur : un livre de 304 pages à raison de 30 pages par jour nécessite 11 jours, car le dernier jour partiel compte tout de même comme un jour de lecture. Les jours s'accumulent le long de la liste, dans l'ordre, de sorte que la date de fin d'un livre est la veille du jour où le suivant commence à accumuler des pages. La date de départ compte comme le premier jour, et chaque date est calculée selon le véritable calendrier grégorien, années bissextiles comprises : une liste commencée en février aboutit donc aux bonnes dates de mars. Le rythme quotidien doit être strictement positif : un rythme nul signifie que la liste ne se termine jamais, et l'outil l'indique par une erreur claire plutôt que par un infini silencieux. Les nombres de pages doivent être des entiers positifs et les dates sont validées strictement, de sorte qu'un « 2026-02-30 » mal saisi est rejeté au lieu d'être silencieusement basculé en mars.
Bien exploiter le résultat
Considérez le résultat comme une référence, non comme une prophétie. Les vraies semaines de lecture varient ; l'habitude la plus utile consiste donc à relancer l'estimation après chaque livre terminé, avec votre liste actualisée et la date du jour : les dates se recalibrent d'elles-mêmes. Vous pouvez aussi l'utiliser pour des expériences de planification : passez le rythme de 20 à 30 pages par jour et observez la date finale se déplacer, ou retirez un livre épais et voyez ce que cela vous coûte. L'outil repose entièrement sur une arithmétique déterministe, sans aucun stockage de votre liste, et il coûte $0.002 par requête via l'API, tandis que le même calcul s'exécute gratuitement sur cette page. Les clubs de lecture s'en servent pour fixer des échéances réalistes, les étudiants pour vérifier qu'un programme tient dans le semestre, et les lecteurs individuels pour voir enfin la forme de leur propre pile. Comme chaque chiffre découle des nombres que vous avez fournis, l'estimation est facile à justifier et facile à ajuster : modifiez une entrée et tout le calendrier se décale en conséquence, sans rien de caché entre les deux.
Cas d’usage
Planifier une pile de lecture personnelle
Saisissez votre pile à lire dans l'ordre et votre rythme quotidien honnête pour voir la date calendaire à laquelle chaque livre — et toute la liste — sera réellement terminé.
Fixer le calendrier d'un club de lecture
Vérifiez combien de jours chaque titre exige au rythme habituel du groupe et choisissez des dates de réunion qui correspondent à la réalité plutôt qu'à l'optimisme.
Faire tenir les lectures imposées dans un semestre
Listez les ouvrages obligatoires avec leur nombre de pages et vérifiez si le programme peut être terminé avant la date de l'examen, à votre vitesse de lecture.
Questions fréquentes
Combien cela coûte-t-il ?
$0.002 par requête via l'API. L'exécution est également gratuite dans votre navigateur sur cette page — le même calcul déterministe.
Qu'est-ce que le rythme quotidien ?
Le nombre de pages que vous lisez par jour en moyenne. Il doit être strictement positif ; un rythme nul ou négatif est rejeté car la liste ne se terminerait jamais.
Les livres sont-ils lus dans l'ordre ?
Oui. Les livres sont lus les uns après les autres dans l'ordre où vous les listez, et chaque date de fin inclut les jours consacrés à tous les livres précédents.
Pourquoi un livre nécessite-t-il un jour même si mon rythme le couvre entièrement ?
Les jours sont comptés en unités entières, le dernier jour partiel étant arrondi au supérieur. Tout livre exige au moins un jour de lecture, et un livre plus long que votre rythme prend l'arrondi supérieur des pages divisées par le rythme.
Tient-il compte des années bissextiles et des longueurs des mois ?
Oui. Les dates sont calculées selon le véritable calendrier grégorien à partir de la date de départ que vous fournissez : les longueurs des mois et les années bissextiles sont donc correctement gérées.
Ma liste de lecture est-elle conservée ?
Non. La liste est traitée en mémoire puis supprimée ; seules les dates calculées sont renvoyées.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre 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)Exemple de requête
{
"books": [
{
"title": "Dune",
"pages": 412
},
{
"title": "The Left Hand of Darkness",
"pages": 304
}
],
"pages_per_day": 30,
"start_date": "2026-07-25"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "life.reading_list_time_estimate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_items | 500 |
max_abs | 10000000 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |