• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

electric

[VB.NE 2005 EXPRESS] Subtrair horas ?!?!?!

15 mensagens neste tópico

boas tou a desevolver uma aplicação na qual quero meter uma X horas e subrair a outra o meu problema é que não consio chegar a 1 raciocínio por exemplo 20:30 - 22:00 = 02:30 quando na realidade é 1:30 alguem me da umas ideias ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Porque não calculas através de segundos?

Passas as horas para o numero de total de segundos:

20:30 = 73800

22:30 = 79200

Depois subtrais e tens o numero de segundos que queres:

79200 - 73800 = 5400

Depois é só passares para o formato que queres:

5400/60 = 90 minutos

90/60 = 1,5 horas

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Programação é muita matemática :)

No php temos o Timestamp, que torna as coisas mais simples, não existe nada semelhante em VB ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pois sinceramente não sei lol

é que eu queria dividir as horas dos minutos mas por mais voltas que dé ha sempre algo que bate ao lado :\

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas porque não fazes como te disse? Qual é o problema agora?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o problema é dividir isso depois :\ 1.5 é 1 hora e meia mas o programa sabe isso como :\ depois inda podia colocar 1 case pra esse fim.... mas e se for 1 hora e 45 minutos que naõ sei qual o total de em matematica xD tas a perceber a cena :\

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sempre podes fazer umas funções que processem os segundos (valor mais exacto).

Tipo, fazias um ciclo de 0 até ao numero de segundos com step de 60, com isto, calculavas os minutos exactos e eliminavas problemas de 5401/60 = 90,016666666666666666666666666667.

Depois fazias outro para os minutos também com step de 60. Dentro deste calculavas as horas, sempre a subtrair a variável dos minutos, 60minutos. No fim, ias ter as horas e o resto dos minutos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Então e utilizar os conceitos de divisão inteira e resto? Pegando no fim do 1º post do Nazgulled:

minutosTotais=90
horas=minutosTotais\60;
minutos=minutosTotais mod 60

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

@TheDark

Mas se os minutos fossem 91, por exemplo ao dividir por 60 não ias ter um numero exacto...

@Tiago Salgado

Porque até tu chegares, ninguém a conhecia :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ah bom  :thumbsup: Sendo assim, usem-na que serve para o caso  :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

@TheDark

Mas se os minutos fossem 91, por exemplo ao dividir por 60 não ias ter um numero exacto...

Isso era se usasse /, \ é divisão inteira :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tanta ideia :D alguma vou usar ;) so não vai ser hoje lol assim que testar isso eu digo novidades :D

[]'s

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bom Meus amigos eu como sou vosso amigo e um amor de pessoa tomem la o código :(

Public Class Form1

    Public Function Ver_tempo(ByVal myStartTime As DateTime, ByVal myFinishTime As DateTime)

        Dim ts As TimeSpan = myFinishTime.Subtract(myStartTime)

        Return "Tempo passado: " & Int(ts.TotalHours) & ":" & ts.TotalMinutes

    End Function

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        MsgBox(Ver_tempo("22:30", "23:00"))

    End Sub

End Class

Espero ter ajudado. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora