Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Patrique

[Resolvido] Calcular tempo para download do arquivo

Recommended Posts

Fala ae pessoal,

 

A um tempo atrás eu encontrei uma function que calculava o tempo de download dos arquivos, para isso eu pegava o tamanho, vamos supor que seja 2MB, dai o sistema fazia uma lista apontando que em uma conexão de 128kbps ira demorar cerca de 4 minutos... que em uma conexão de 500kbps iria demorar 20 segundos e que em uma conexão de 1MB iria demorar 4 segundos.

 

A questão é que eu não encontro esta function, dai venho aqui recorrer aos amigos, para saber se alguém conhece ou tem uma função que faça isso, já procurei em tudo aqui em casa, vasculhei a net, mais neca! só acho script em PHP rsrsrsrs

 

Desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu tenho uma função para o cálculo, que uso, mas esta em meu trabalho,não tenho na maq. que estou hoje, mas também tenho uma outra em js, vê se ajuda

 

<html>
<head>
<title>Calculadora de tempo de download</title>
		<style>
		body{margin-top:100;font-family:verdana}
		a{text-decoration:none;color:gray}
		a:hover{text-decoration:underline;color:black}
		</style>
<script> 
function cpscalc(myform)
{
        var bytes = 0
        var trans = 0 

	bytes = myform.dimensione.value * ((myform.unita.options[0].selected == true) + ( (myform.unita.options[1].selected == true)*1024) + ((myform.unita.options[2].selected == true) * 1024*1024))
	trans = myform.velocita.value / ( (myform.unitaV.options[0].selected == true) + ( (myform.unitaV.options[1].selected == true) * 8))
	myform.result.value =  getmin(Math.round(bytes/trans)) 
	myform.result1.value = getmin(Math.round((bytes*1.35)/trans))
}

function getmin(sec)
{
        var ore = 0
        var minuti = 0
	var secondi = 0
        var tempo = " "
        if(sec<1) return ("Menos de 1 (Um) Segundo")
		ore = Math.floor (sec/3600)
                minuti =  Math.floor((sec - (ore * 3600))/60)
                secondi = Math.floor (sec - ((ore*3600) + (minuti * 60)))
                if(sec > 86400) return ("Mais de 1 (Um) Dia!")                      
        	        else if(sec  >=  3600) tempo = ore + " Hora(s) " + minuti + " Min(s). " + secondi + " Seg(s). "
	        	else if( sec< 3600 & sec >=60) tempo = minuti + " Minuto(s) " + secondi + " Seg(s). "
	                else tempo = secondi + " Segundo(s)"
	return(tempo)
}
</script>
</head>


<body bgcolor="#FFFFFF">
<center><table STYLE="border-top-color:#1E90FF; border-top-width:4px; border-top-style:double; border-bottom-color:#1E90FF; border-bottom-width:4px; border-bottom-style:double; border-left-style:none; border-right-style:none">
   <tr><td bgcolor=6495ed align=center><font face=verdana>
    Calculadora de tempo de download</font></td></tr>

   <tr><td>
    <form NAME="myform">
      <b><font COLOR="BLACK" size="1"><p></font><font FACE="ARIAL" SIZE="2"" COLOR="BLACK">
      Tamanho do Arquivo</b><br>
      <input TYPE="TEXT" NAME="dimensione" VALUE="1" onChange="cpscalc(this.form)" size="20"> <select
      NAME="unita" onChange="cpscalc(this.form)" size="1">
        <option>Byte</option>
        <option SELECTED>Kb </option>

        <option>Mb </option>
      </select></p>
      <p><b>Taxa de Transferência</b><br>
      <input TYPE="TEXT" NAME="velocita" VALUE="57344" onChange="cpscalc(this.form)" size="20">
      <select NAME="unitaV" onChange="cpscalc(this.form)" size="1">
        <option>CPS </option>
        <option SELECTED>BPS </option>(Bps = bytes por segundo)
      </select></p>

      <p><b>Tempo de Transferência Estimado <br>(<font size=1>Sem congestionamento - com linha direta ou
      programa de comunicação em linha digital</font>)</b><br>
      <input TYPE="TEXT" NAME="result" VALUE="  " SIZE="29"><br>
      <br>
      <b>Tempo de Transferência Estimado (Internet Brasileira)</b><br>
      <input TYPE="TEXT" NAME="result1" VALUE="  " SIZE="35"> </p>

      <p></font> </p>
    </form>
<div align=justify style="border:solid 1px red;width:450px;font-size:8pt;font-family:verdana">
  Isso vale para vários tipos de conversão.
<br>
- As taxas de transferência dependem do seu modem:<ul>
<li>56 Kbps = 7 KBps = 57344 BPS</li>

<li>64 Kbps = 8 KBps = 65536 BPS</li>
<li>128 Kbps = 16 KBps = 131072 BPS</li>
<li>256 Kbps = 32 KBps = 262144 BPS</li>
<li>300 Kbps = 37,5 KBps = 307200 BPS</li>
<li>512 Kbps = 64 KBps = 524288 BPS</li>
<li>600 Kbps = 75 KBps = 614400 BPS</li>
<li>1 Mbps = 128 KBps = 1048576 BPS</li>
<li>2 Mbps = 256 KBps = 2097152 BPS</li>
<li>4 Mbps = 512 KBps = 4194304 BPS</li>

<li>8 Mbps = 1024 KBps = 8388608 BPS</li>
</ul>
</div>
    </td>
  </tr>
</table></center>
</body>


</html>


Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa valew Xam, mais no caso queria em asp, em javascript eu encontrei vários, minha última alternativa será utilizar em js mesmo rsrsrs, mais que eu tinha a function em asp isso eu tinha rsrsrsrs se não me engano tinha conseguido em um blog chines rsrsr por isso ta tão difícil encontrar novamente :) mais obrigado ai, se tiver como você me mandar depois a que esta no trabalho fico agradecido cara!

Compartilhar este post


Link para o post
Compartilhar em outros sites

procurando aqui, achei, tinha salvado com outro nome:

 

 

<%

Function DownloadTime(intFileSize, strModemType)

Dim TimeInSeconds, ModemSpeed, strDownloadTime, AppendString

Dim intYears, intWeeks, intDays

Dim intHours, intMinutes, intSeconds

intYears = 0

intWeeks = 0

intDays = 0

intHours = 0

intMinutes = 0

intSeconds = 0

strDownloadTime = ""

Select Case strModemType

Case "Cable"

 ModemSpeed = 400000

Case "56kbps"

 ModemSpeed = 7000

Case "33.6kbps"

 ModemSpeed = 4200

Case "28.8kbps"

 ModemSpeed = 3600

End Select

TimeInSeconds = int(intFileSize / ModemSpeed)

'year maths added 1/4 of a day. 1 exact orbit of the sub is 365.25 days.

If (Int(TimeInSeconds / 31471200) <> 0) Then intYears = Int(TimeInSeconds / 31449600)

If ((Int(TimeInSeconds / 604800) Mod 52) <> 0) Then intWeeks = Int(TimeInSeconds / 604800) Mod 52

If ((Int(TimeInSeconds / 86400) Mod 7) <> 0) Then intDays = Int(TimeInSeconds / 86400) Mod 7

If TimeInSeconds >= 3600 Then intHours = Int(TimeInSeconds / 3600) Mod 24

If TimeInSeconds >= 60 Then intMinutes = Int(TimeInSeconds / 60) Mod 60

If TimeInSeconds >= 0 Then intSeconds = Int(TimeInSeconds) Mod 60

If intYears <> 0 Then

 If intYears = 1 Then AppendString = "" Else AppendString = "s"

 strDownloadTime = strDownloadTime & intYears & " year" & AppendString & ", "

End If

If intWeeks <> 0 Then

 If intWeeks = 1 Then AppendString = "" Else AppendString = "s"

 strDownloadTime = strDownloadTime & intWeeks & " week" & AppendString & ", "

End If

If intDays <> 0 Then

 If intDays = 1 Then AppendString = "" Else AppendString = "s"

 strDownloadTime = strDownloadTime & intDays & " day" & AppendString & ", "

End If

If intHours <> 0 Then

 If intHours = 1 Then AppendString = "" Else AppendString = "s"

 strDownloadTime = strDownloadTime & intHours & " hour" & AppendString & ", "

End If

If intMinutes <> 0 Then

 If intMinutes = 1 Then AppendString = "" Else AppendString = "s"

 strDownloadTime = strDownloadTime & intMinutes & " minute" & AppendString

End If

If ((intYears = 0) And (intWeeks = 0) And (intDays = 0) And (intHours = 0)) Then

 If intSeconds = 1 Then AppendString = "" Else AppendString = "s"

 If intMinutes > 0 Then

  strDownloadTime = strDownloadTime  & ", " & intSeconds & " second" & AppendString

 Else

  strDownloadTime = strDownloadTime & intSeconds & " second" & AppendString

 End If

End If

DownloadTime = strDownloadTime

End Function

%>

<html>

<body>

It is going to take about

<%=DownloadTime(123456,Cable)%> to download this file.

</body>

</html> 

Compartilhar este post


Link para o post
Compartilhar em outros sites

depois você pode alterá-lo para otimizar e adaptá-lo do seu jeito...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.