Horario de estudio para exámenes
Con Matemáticas de peso 3, Física 2 e Historia 1, una jornada de 4 horas da 2 horas a Matemáticas, y en 10 días son 20 de sus 40 horas. Las materias difíciles reciben más tiempo sin dejar sin horas a las demás. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Días hasta el examen
- 10
- Horas por día
- 4
- Cantidad de asignaturas
- 3
- Suma de dificultades
- 6
- Horas de estudio totales
- 40
Cuando varias asignaturas comparten la misma fecha de examen, la pregunta difícil no es cuántas horas tiene, sino cómo repartirlas entre temas para que los cursos difíciles reciban más práctica sin dejar vacíos los más fáciles. Este generador de horarios de estudio acepta una lista de asignaturas con un peso de dificultad relativo, el número de días que faltan hasta el examen y un presupuesto diario fijo de horas. Devuelve las horas por día y el total por asignatura con una regla proporcional transparente: cada asignatura recibe una parte del presupuesto diario igual a su dificultad dividida entre la suma de todas las dificultades. Cero días hasta el examen se rechaza como entrada inválida, porque no queda ventana de estudio que asignar.
Cómo se definen las horas de estudio ponderadas por dificultad
Parta de una lista honesta de las asignaturas que aún debe cubrir antes del examen. A cada una asígnele un peso de dificultad no negativo que refleje el esfuerzo relativo, no la nota absoluta: un examen de matemáticas con peso tres junto a un repaso de historia con peso uno significa que matemáticas debe recibir tres veces los minutos diarios de historia cuando ambas figuran en la misma lista. Sume esos pesos en un total de dificultad único.
Luego tome las horas que puede estudiar de forma realista cada día y multiplique por la cuota de cada asignatura, donde la cuota es la dificultad de esa asignatura dividida entre el total de dificultad. El producto son las horas por día de esa asignatura. Multiplique de nuevo por los días hasta el examen para obtener el total de horas en todo el horizonte de repaso.
Cuando el total de dificultad es cero, la fórmula de cuota divide por cero y la petición falla con entrada inválida en lugar de inventar repartos iguales que usted no pidió. Cuando los días hasta el examen son exactamente cero no queda ventana de calendario, así que la capacidad también falla con entrada inválida en vez de devolver un horario vacío de ceros que un planificador defectuoso podría tratar como éxito. Días negativos, horas diarias negativas, listas de asignaturas vacías y nombres ausentes se rechazan del mismo modo.
La herramienta no inventa calendarios de repetición espaciada, no carga temarios en vivo ni convierte husos horarios; esas son intenciones de producto separadas con sus propias páginas cuando crezca la cobertura.
Qué puede hacer con ella
Semanas de repaso multiasignatura
Reparta un presupuesto diario fijo entre Matemáticas, Historia y Física para que los exámenes más difíciles reciban proporcionalmente más horas antes de una fecha común.
Preguntas frecuentes
¿Pueden ser cero los pesos de dificultad de algunas asignaturas?
Sí para asignaturas individuales, pero la suma de todos los pesos debe ser mayor que cero. Una lista toda a cero falla porque las cuotas proporcionales dividirían por cero.
¿Qué entradas son obligatorias?
Los valores ausentes o no finitos fallan la validación.
¿Cómo se reparten las horas de estudio entre asignaturas?
Cada asignatura recibe una parte de sus horas diarias igual a su dificultad dividida entre la suma de todas. Esa cifra diaria por los días que faltan da su total: Matemáticas, con 3 de 6, se lleva la mitad de cada jornada.
¿Qué pasa si el examen es hoy?
Cero días restantes se rechaza en lugar de devolver un horario vacío, porque no queda tiempo que repartir. Sí se aceptan días fraccionados, así que medio día por delante también sirve.
¿El peso de dificultad debe ser mi nota en la asignatura?
No. Use un peso de esfuerzo relativo, no una calificación. Un peso de 3 junto a uno de 1 significa simplemente que la primera asignatura recibe el triple de minutos que la segunda en la misma lista.
Herramientas relacionadas
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/study-schedule-build \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"subjects":[{"name":"Math","difficulty":3},{"name":"History","difficulty":1},{"name":"Physics","difficulty":2}],"days_until_exam":10,"hours_per_day":4}'const res = await fetch("https://api.kit.forhosting.com/life/study-schedule-build", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"subjects": [
{
"name": "Math",
"difficulty": 3
},
{
"name": "History",
"difficulty": 1
},
{
"name": "Physics",
"difficulty": 2
}
],
"days_until_exam": 10,
"hours_per_day": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/life/study-schedule-build",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"subjects": [
{
"name": "Math",
"difficulty": 3
},
{
"name": "History",
"difficulty": 1
},
{
"name": "Physics",
"difficulty": 2
}
],
"days_until_exam": 10,
"hours_per_day": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/life/study-schedule-build", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"subjects":[{"name":"Math","difficulty":3},{"name":"History","difficulty":1},{"name":"Physics","difficulty":2}],"days_until_exam":10,"hours_per_day":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"subjects":[{"name":"Math","difficulty":3},{"name":"History","difficulty":1},{"name":"Physics","difficulty":2}],"days_until_exam":10,"hours_per_day":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/life/study-schedule-build", 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
{
"subjects": [
{
"name": "Math",
"difficulty": 3
},
{
"name": "History",
"difficulty": 1
},
{
"name": "Physics",
"difficulty": 2
}
],
"days_until_exam": 10,
"hours_per_day": 4
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "life.study_schedule_build",
"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.
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. |
Notas técnicas
Cómo se definen las horas de estudio ponderadas por dificultad
La aritmética es coma flotante determinista con redondeo estable: entradas idénticas siempre producen JSON idéntico, sin marcas de tiempo de reloj, semillas aleatorias, llamadas de red ni deriva de modelo.
Contrato de entrada, forma de la respuesta y errores
Envíe por POST un cuerpo JSON con tres campos obligatorios. subjects es un array no vacío de objetos, cada uno con un name de cadena no vacía y un difficulty numérico finito no negativo; el solucionador acepta alias opcionales como weight para difficulty cuando están presentes. days_until_exam es un número finito estrictamente mayor que cero que representa días enteros o fraccionarios que faltan hasta el examen; cero es el fallo duro explícito descrito arriba. hours_per_day es un número finito mayor que cero que representa el presupuesto total de estudio de todas las asignaturas en un día típico. Campos ausentes, números no finitos, listas vacías, horas diarias nulas o negativas, dificultades negativas y una suma cero de pesos fallan con invalid_input y no se facturan. En caso de éxito el cuerpo devuelve days_until_exam y hours_per_day limpios, informa subject_count y difficulty_sum, devuelve total_study_hours como producto del presupuesto diario y los días, y proporciona un array schedule. Cada fila de schedule incluye index, name, difficulty, share como fracción unitaria del total de dificultad, hours_per_day de esa asignatura y total_hours en el horizonte. method se fija en difficulty_proportional_study_hours y formula reexpresa las dos multiplicaciones para que tutores y autoevaluadores citen la misma expresión. Comprobación clásica: Matemáticas peso tres, Historia peso uno, Física peso dos, diez días, cuatro horas al día produce un difficulty_sum de seis, de modo que Matemáticas recibe dos horas al día y veinte en total, Historia dos tercios de hora al día y Física cuatro tercios de hora al día. El precio de las llamadas API exitosas es la base publicada de $0.002 por ítem; los fallos de validación no consumen saldo prepago.
Dónde aporta valor un generador de horarios de estudio
Las semanas de repaso de secundaria y universidad obligan a los estudiantes a repartir un presupuesto fijo de tarde entre cuatro o cinco exámenes de dificultad desigual; un oráculo proporcional de confianza elimina la deriva de hojas de cálculo entre compañeros que comparan planes. Las plataformas de tutoría y las apps de preparación de exámenes necesitan una asignación determinista que puedan mostrar junto a las tarjetas de memoria para que el alumno vea por qué las asignaturas difíciles ocupan más del calendario. Si más adelante necesita mapas de repetición espaciada, exportaciones de calendario con husos horarios o dificultad adaptativa desde puntuaciones de quizzes, trátelos como intenciones de búsqueda y páginas separadas en lugar de sobrecargar esta página de horario de estudio para exámenes. Los plugins de gestión del aprendizaje y los portales de padres pueden llamar a la API para rellenar objetivos semanales de horas sin montar un motor de reglas a medida. Como esta capacidad es un motor de parse puro, el precio de la API es la base publicada de $0.002 por ítem exitoso y la validación fallida no consume saldo.
Casos de integración
Apps de tutoría y preparación de exámenes
Muestre a los alumnos una tabla transparente de horas por día derivada de pesos de dificultad, con los mismos números en el widget gratuito y en la API de pago.
Fixtures LMS y planes de coaching
Genere en masa horarios proporcionales para cohortes y rechace cero días hasta el examen con un invalid_input duro en lugar de un plan vacío fingido.
Preguntas técnicas
¿Cómo se reparten las horas de estudio entre asignaturas?
Cada asignatura recibe hours_per_day multiplicado por (difficulty dividido entre la suma de todas las dificultades). Las horas totales de una asignatura equivalen a esa cantidad diaria por days_until_exam.
¿Qué ocurre si los días hasta el examen son cero?
La tarea falla con invalid_input. No queda ventana de estudio que asignar, así que la API rechaza un horario de cero días en lugar de devolver un éxito vacío.
¿Cuánto cuesta el generador de horarios de estudio?
La herramienta del navegador es gratuita. Las peticiones API usan saldo prepago de KIT a $0.002 por llamada exitosa; la entrada inválida no se factura.