Jump to content

Pascal em horas


PreTenDer666

Recommended Posts

PreTenDer666

Boas, estou a tentar fazer um programa para ver quanto tempo irei levar se eu fizer um upload a X kb/s

Em minutos ja consegui mas em horas nao,pois o programa nao entende que 60 minutos é 1 hora.

Como posso fazer isto?

Ex. a 10kb/s demoro 58minutos a 5kb/s demoro 1.93 :D mas deveria de ser 1h e 56minutos.

Alguem me consegue ajudar?

Link to post
Share on other sites

Este problema já é um pouco mais complicado que o outro.. não estou a ver agora a solução.. tinha de estudar melhor isso..

veio me à cabeça um algoritemo para isso mas não sei se resultará..

tipo quando a variavel dos minutos for maior que 60 incrementas um valor na variavel horas.. e poe a 0 a variavel minutos e começas a contar outra vez.. e isto sempre assim.. neste ciclo..

o codigo é mais ou menos isto:

horas:=0;

if minutos>60 then

begin

minutos:=0;

horas:=horas+1;

mas tens de ver onde metes isto.. se não conseguires manda me o programa todo para eu tentar resolver isso.. mas tenta sozinho 1o..

cumps

Link to post
Share on other sites

O melhor mesmo é fazeres uma função para somar tempo H:MM:SS.

O meu pascal está muito por baixo mas julgo que com os grupos o o que reio eles chamam a isso

(é pá tenho ali uns livros que devem ter isso, vou ali ver já volto)

Turbo Building Blocks (Nada, é só mesmo para ir buscar a data e a hora so DOS)

Nada mesmo nem no google.

Claro que se multiplicares 93 por 0,6 tens 55,8 que arredondado int(55,8 + 0,5) dá 56 o que está certo.

Quando tudo o mais falhar, leia o manual de instruções.

Link to post
Share on other sites

Ois

Deves tar a fazer alguma coisa mal, esses minutos nao devem tar la muito bem pq se a 10kb/s levas 58 minutos a 5kb/s devias levar

116 minutos, nao tou a ver onde e como foste buscar esse 1.93 .

Se a vida te voltar as costas aproveita e apalpa-lhe o cu.

Link to post
Share on other sites
PreTenDer666

Bem, em relação a esta questão encontrei uma solução...mas foi sol de pouca-dura...está no exemplo de 116minutos ser 1h e 56m...ora a diferença é de 40. -> 116+40 = 156 mas se for por exemplo 126 minutos ai ja tenho de acrescentar 80 (o dobro) 126+80=206 ou seja 2h e 6minutos e assim continuamente....a cada 60 deve-se acrescentar 40...exemplo 61 minutos será 61+40...121 minutos será 121+80....186 será 186+120...e assim continuamente....alguem achas que com esta formula eu consigo chegar ao k eu queria?Se sim...utilizando k formula?[[ ]]

Link to post
Share on other sites
Tiago Salgado

Private Sub calc_tempo(ByVal tempo As Integer) 'o parametro "tempo" é passado em numero de minutos
Dim hora() As String

horas = tempo / 60
hora() = Split(horas, ",") 'faz a divisão do valor guardado na var "horas" e guarda no array o valor inteiro (posicao 0) e o valor decimal (posicao 1)
horas = hora(0) 'o nr de horas é atribuido consoante o valor da primeira posicao do array
If UBound(hora) = 1 Then
    hora(1) = "0," & hora(1)
    minutos = hora(1) * 60
    minutos = Round(minutos, 1)
    If Len(minutos) = 1 Then minutos = "0" & minutos
Else
    minutos = "00"
End If

MsgBox "horas:" & horas & " minutos:" & minutos

End Sub

Isto é um exemplo em VB...como ja nao mexo em pascal ha mto tempo e nem sequer tenho aqui algo para testar fiz em VB ... à partida está correcto, mas quem perceba de VB e de Pascal tente passar para Pascal sff

Para download duma app com esta função de forma a fazerem o teste está aqui

Link to post
Share on other sites

Se existirem mais de 60 minutos, nesse caso ele soma uma unidade às horas, e subtrai 60 aos minutos.

Isso até os minutos serem inferiores a 60

Outra forma de resolução (mais eficaz e rápida):

h:=m div 60;
m:=m mod 60;

PS: Eu estou a partir do pressuposto que a variável "m" inicia a execução com um número de minutos desconhecido, pode ser 0, 35, 60, ou 150 por exemplo..

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.