Ir para o conteúdo
electric

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

Mensagens Recomendadas

electric    1
electric

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 ?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Nazgulled    8
Nazgulled

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Weasel    3
Weasel

Programação é muita matemática :)

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
electric    1
electric

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 :\

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
electric    1
electric

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 :\

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Nazgulled    8
Nazgulled

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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
TheDark    0
TheDark

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Nazgulled    8
Nazgulled

@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 :)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
TheDark    0
TheDark

@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 :)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Gooden    0
Gooden

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. :)

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


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade