Calcolatore del tempo di download
Stimi quanto tempo serve per trasferire un file: 10 MB su una linea da 10 Mbps richiedono 8 secondi, non 1, perché la velocità si misura in bit e il file in byte. Accetta unità decimali e binarie. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Dimensione
- 10
- Unità dimensione
- MB
- Velocità
- 10
- Unità velocità
- Mbps
- Secondi
- 8
- Ore
- 0
- Minuti
- 0
- Secondi rimanenti
- 8
gratis online
Perché bit e byte cambiano la risposta
Le velocità di connessione si indicano di solito in bit al secondo, mentre i file si misurano in byte, e confondere le due cose è il motivo più comune di una stima sbagliata. Un byte vale otto bit, quindi le velocità in bit al secondo, come bps, Kbps, Mbps o Gbps, vengono divise per otto per ottenere byte al secondo, mentre quelle già in byte al secondo si usano così come sono. Per questo 10 MB su una linea da 10 Mbps richiedono 8 secondi e non uno: 10 megabyte sono 80 megabit. Se non cambia nulla, la dimensione è letta in MB e la velocità in Mbps, come si pubblicizzano di solito le connessioni di casa.
Le unità dei file e come leggere il risultato
Le dimensioni dei file si dividono in due famiglie. Le unità decimali KB, MB, GB e TB crescono per potenze di 1000, quindi un MB vale 1.000.000 di byte. Le unità binarie KiB, MiB, GiB e TiB crescono per potenze di 1024, quindi un MiB vale 1.048.576 byte. Il risultato riporta il tempo totale in secondi, arrotondato a tre decimali, lo stesso tempo in ore, minuti e secondi, e un'etichetta breve come 1h 5m 3s, o semplicemente 8s per i trasferimenti rapidi. Mostra anche la dimensione in byte e la velocità in byte al secondo per verificare la conversione. Lo usi prima di un backup o per confrontare offerte.
Dai secondi a una durata leggibile
Suddivide il totale in ore e minuti interi e in un valore frazionario secs, gestendo correttamente il riporto, così che un secs che raggiunge 60 passi ai minuti e un minutes che raggiunge 60 passi alle ore. Il campo human viene assemblato da quelle parti: mostra le ore solo quando presenti (per esempio 1h 5m 3s), minuti e secondi quando è sotto l'ora, e i soli secondi per i trasferimenti brevi, esattamente come l'esempio di riferimento trasforma 10 MB a 10 Mbps in seconds 8 e human 8s.
Questo le offre sia una durata numerica precisa per ulteriori calcoli sia un'etichetta compatta pronta da mostrare in un'interfaccia o in una riga di log, senza alcuna formattazione specifica del locale.
Casi d'uso
Dimensionare un trasferimento
Stimi quanto tempo richiederà un backup, una ISO o un file multimediale su una data connessione prima di avviarlo, usando le unità in cui è indicata la sua banda.
Pianificazione della banda
Confronti le durate tra i vari livelli di Mbps o le linee in byte al secondo per giustificare un upgrade, leggendo i byte al secondo risultanti per verificare i conti.
Domande frequenti
Perché 10 MB a 10 Mbps richiedono 8 secondi e non 1?
Mbps significa megabit al secondo; lo strumento divide per 8 le velocità basate sui bit. 10 MB sono 80 megabit, quindi a 10 Mbps sono 8 secondi.
Cos'è il campo human?
Una stringa di durata leggibile come 8s o 1h 5m 3s, costruita dalla suddivisione in ore, minuti e secs con il riporto corretto.
Tiene conto dell'overhead o della latenza?
No. Modella solo il throughput ideale, quindi i trasferimenti reali possono essere più lenti. Gli input sono validati e i risultati sono deterministici.
Che differenza c'è tra MB e MiB nella dimensione di un file?
Il MB è un'unità decimale di 1.000.000 di byte, mentre il MiB è binario e vale 1.048.576 byte. Scelga l'unità in cui la dimensione del file è mostrata davvero, perché usare l'altra sposta la stima.
Come confronto i tempi di download tra offerte internet?
Tenga la stessa dimensione del file e cambi solo la velocità, per esempio tra offerte in Mbps. Lo strumento mostra anche la dimensione in byte e la velocità in byte al secondo, così può verificare la conversione dietro ogni stima.
Strumenti correlati
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/dev/download-time \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"size":10,"speed":10}'const res = await fetch("https://api.kit.forhosting.com/dev/download-time", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"size": 10,
"speed": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/download-time",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"size": 10,
"speed": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/download-time", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"size":10,"speed":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"size":10,"speed":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/download-time", 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
{
"size": 10,
"speed": 10
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.download_time",
"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. |
Note tecniche
Stima quanto dura un trasferimento convertendo la dimensione (con size_unit) in byte e la velocità (con speed_unit) in byte al secondo, dividendo per ottenere i secondi e restituendo una suddivisione in h/m/s più una stringa leggibile.
Unità: decimali, binarie, bit e byte
Ecco perché 10 MB su una linea da 10 Mbps non è un secondo ma otto: 10 MB sono 80 megabit. La dimensione viene letta con size_unit, che accetta le unità decimali B, KB, MB, GB e TB (potenze di 1000) oltre alle unità binarie KiB, MiB, GiB e TiB (potenze di 1024), quindi un MB è 1.000.000 di byte mentre un MiB è 1.048.576. La velocità viene letta con speed_unit e gestisce la distinzione tra bit e byte che manda in errore la maggior parte delle stime: le unità in bit al secondo bps, Kbps, Mbps e Gbps vengono divise per 8 per arrivare ai byte al secondo, mentre le unità in byte al secondo Bps, KBps, MBps e GBps vengono usate direttamente. I valori predefiniti sono MB per la dimensione e Mbps per la velocità, in linea con il modo in cui di solito viene indicata la banda al consumatore, e l'output riporta i risultati size_bytes e speed_bytes_per_sec così che possa verificare la conversione.
Dai secondi a una durata leggibile
Dopo la conversione, lo strumento calcola size_bytes diviso speed_bytes_per_sec per ottenere i secondi grezzi, poi arrotonda quel valore a tre decimali come campo seconds.
Validazione, arrotondamento e determinismo
Sia la dimensione sia la velocità devono essere numeri finiti strettamente maggiori di zero, e size_unit e speed_unit devono corrispondere a una delle chiavi enumerate; un'unità sconosciuta o un numero non positivo solleva un errore tipizzato invalid_input che nomina il problema, e una velocità effettiva pari a zero è protetta dalla divisione per zero. Il calcolo è un modello puro di throughput ideale senza overhead di protocollo, latenza, congestione o ramp-up, il che lo mantiene pienamente deterministico: input identici producono sempre JSON identico.
Casi di integrazione
Stime in-app tramite API
Richiami l'endpoint per mostrare agli utenti una stima in tempo reale in stile 'circa 8s', inserendo direttamente il campo human nell'interfaccia.
Domande tecniche
Supporta le unità binarie come MiB e GiB?
Sì. size_unit accetta le decimali B/KB/MB/GB/TB (x1000) e le binarie KiB/MiB/GiB/TiB (x1024); speed_unit copre da bps a Gbps e da Bps a GBps.
Lo strumento del browser è gratuito?
Sì, il widget è gratuito (tier A). L'API funziona con saldo KIT prepagato a partire da $0.002 e addebita solo le attività riuscite.