Dividere il tempo d'esame per domanda in base ai punti
Crei un programma pratico per l'esame partendo dalla durata totale e dai punti di ciascuna domanda.
Esegui gratis nel browser
Il calcolatore distribuisce i minuti in proporzione: i compiti con un peso maggiore ricevono più tempo, quelli di minor valore ne ricevono meno. L'arrotondamento conserva la durata completa e l'ordine iniziale, offrendo agli studenti un riferimento chiaro e consentendo ai docenti di confrontare il punteggio con l'impegno previsto.
Inserisca l'intera struttura dei punteggi
Indichi la durata completa in minuti ed elenchi le domande nell'ordine della prova. Scelga un'etichetta riconoscibile e copi con precisione il valore massimo. Ogni domanda riceve la stessa proporzione di tempo che rappresenta nel totale dei punti. Può includere elementi da zero punti, ma almeno un valore deve essere positivo; in caso contrario, la richiesta restituisce un errore. Confronti i dati con il testo ufficiale, perché un punteggio trascritto male modifica tutte le assegnazioni.
Interpreti correttamente l'arrotondamento
Il risultato mostra centesimi di minuto e mantiene una somma esatta. Il calcolo assegna prima i centesimi interi di ogni quota matematica, poi distribuisce quelli rimanenti in base ai maggiori resti decimali. In caso di parità decide l'ordine originale. Lo stesso input produce sempre lo stesso risultato. In una prova molto breve, una domanda piccola può mostrare zero minuti: è il segnale di una struttura troppo serrata, non un invito a ignorarla.
Trasformi il programma in traguardi
Utilizzi le assegnazioni come riferimento flessibile. Può sommare i tempi per annotare traguardi all'inizio delle sezioni e riservare prima alcuni minuti alla lettura o al controllo. I docenti possono confrontare la ripartizione con la difficoltà reale, le fonti e i calcoli richiesti. Per un adattamento, inserisca prima la durata approvata. Lo strumento non stima velocità di lettura, passaggi o capacità individuali; modifichi quindi questa base trasparente quando serve.
Casi d'uso
Preparare il ritmo dell'esame
Converta i punti in obiettivi per domanda e traguardi cumulativi.
Controllare l'equilibrio della prova
Confronti il tempo derivato dai punti con l'impegno previsto per ogni attività.
Applicare il tempo aggiuntivo
Ricalcoli le stesse proporzioni con una durata adattata.
Domande frequenti
Come vengono calcolati i tempi suggeriti?
Ogni domanda riceve la proporzione della durata corrispondente alla sua quota dei punti totali.
Cosa accade quando il totale è zero?
La richiesta restituisce un errore di input, perché una somma nulla non permette alcuna proporzione.
Una domanda può valere zero punti?
Sì. Riceve zero minuti se almeno un'altra domanda ha un punteggio positivo.
I tempi arrotondati sommano esattamente il totale?
Sì. I centesimi rimanenti vengono distribuiti per conservare la durata mostrata.
Quanto costa una richiesta API?
Il prezzo dell'API è $0.002 per richiesta.
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/edu/exam-time-per-question \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"duration_minutes":120,"questions":[{"question":"Definitions","points":15},{"question":"Analysis","points":35},{"question":"Essay","points":50}]}'const res = await fetch("https://api.kit.forhosting.com/edu/exam-time-per-question", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"duration_minutes": 120,
"questions": [
{
"question": "Definitions",
"points": 15
},
{
"question": "Analysis",
"points": 35
},
{
"question": "Essay",
"points": 50
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/edu/exam-time-per-question",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"duration_minutes": 120,
"questions": [
{
"question": "Definitions",
"points": 15
},
{
"question": "Analysis",
"points": 35
},
{
"question": "Essay",
"points": 50
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/edu/exam-time-per-question", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"duration_minutes":120,"questions":[{"question":"Definitions","points":15},{"question":"Analysis","points":35},{"question":"Essay","points":50}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"duration_minutes":120,"questions":[{"question":"Definitions","points":15},{"question":"Analysis","points":35},{"question":"Essay","points":50}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/edu/exam-time-per-question", 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
{
"duration_minutes": 120,
"questions": [
{
"question": "Definitions",
"points": 15
},
{
"question": "Analysis",
"points": 35
},
{
"question": "Essay",
"points": 50
}
]
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "edu.exam_time_per_question",
"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.
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. |