ENCALHADO NO PROGRAMA
Boa tarde.
Estou a fazer um programa que pensava eu que seria simple e fácil, mas estou encalhado.
tenho 4 textbox cada uma delas para as coordenadas X e Y
Pelo teorema de pitágoras obtenho o resultado, que tanto pode ser inteiro como decimal
1 velocidade de por exeplo 9, que teria de ser convertido para o formato de horas( 00:09:00.000)
O que eu pretendo é fazer a multiplicação da velocidade pelo valor obtido na fórmula do teorema de pitágoras.
A fórmula usada é:
Por exemplo, estas coordenadas:
Tendo em conta que o resultado, segundo o excel é 00:12:43.675
Preciso mesmo do resultado em formato de hora com os milisegundos :(
Como posso fazer a multiplicação e converter o resultado para o formato de hora?
Obrigado pela vossa ajuda desde já.
Estou a fazer um programa que pensava eu que seria simple e fácil, mas estou encalhado.
O que eu pretendo é fazer a multiplicação da velocidade pelo valor obtido na fórmula do teorema de pitágoras.
A fórmula usada é:
Por exemplo, estas coordenadas:
Tendo em conta que o resultado, segundo o excel é 00:12:43.675
Preciso mesmo do resultado em formato de hora com os milisegundos :(
Como posso fazer a multiplicação e converter o resultado para o formato de hora?
Obrigado pela vossa ajuda desde já.
Não entendi muito bem como você chegou nesse valor de 00:12:43.675, se foi pelo resultado da fórmula não sei o que fazer, mas se quer transformar um número em horas, por exemplo 1.5 = 01:30:00 então é só usar o TimeSpan.FromHours(valor)
Por exemplo, TimeSpan.FromHours(1.41421356) é igual a 01:24:51.169
Por exemplo, TimeSpan.FromHours(1.41421356) é igual a 01:24:51.169
O valor de 00:12:43.675 é obtido multiplcando a raiz de 2 por 00:09:00
(9 minutes/campo) * (1.41421356 fcampos) = 12.7279220 minutos
Usando a lógica:
Sabemos que há 60 minutos em uma hora, mas a duração é de apenas 12,7279220 minutos, um pouco menos de 60 minutos. Assim, o número de horas é 00. Temos agora uma duração de 00:?:?.??, Com 12,7279220 minutos que sobraram.
Há toda a 12 minutos em 12,7279220 minutos, para colocar aqueles na ranhura minutos.
Temos, agora, uma duração de 0:12:?.??, Com 0,7279220 minutos que sobraram.
Precisamos saber os segundos seguinte (60 segundos em um minuto), para multiplicar os minutos restantes por 60 para obter o número de segundos.
0.7279220 * 60 = 43,67532
que tem 43 segundos inteiros para o slot segundos, dando-nos uma duração de 00:12:43.??
Para encontrar os milissegundos multiplicar os restantes segundos (0,67532) em 1000 (1.000 milissegundos em um segundo, lembra?), E você tem o número de milissegundos.
Bem, finalmente temos isso. A duração de 503 | 843-502 | 844 é 00:12:43.675.
(9 minutes/campo) * (1.41421356 fcampos) = 12.7279220 minutos
Usando a lógica:
Sabemos que há 60 minutos em uma hora, mas a duração é de apenas 12,7279220 minutos, um pouco menos de 60 minutos. Assim, o número de horas é 00. Temos agora uma duração de 00:?:?.??, Com 12,7279220 minutos que sobraram.
Há toda a 12 minutos em 12,7279220 minutos, para colocar aqueles na ranhura minutos.
Temos, agora, uma duração de 0:12:?.??, Com 0,7279220 minutos que sobraram.
Precisamos saber os segundos seguinte (60 segundos em um minuto), para multiplicar os minutos restantes por 60 para obter o número de segundos.
0.7279220 * 60 = 43,67532
que tem 43 segundos inteiros para o slot segundos, dando-nos uma duração de 00:12:43.??
Para encontrar os milissegundos multiplicar os restantes segundos (0,67532) em 1000 (1.000 milissegundos em um segundo, lembra?), E você tem o número de milissegundos.
Bem, finalmente temos isso. A duração de 503 | 843-502 | 844 é 00:12:43.675.
Explicando-me melhor:
Tenho os seguintes dados, a velocidade e a formula da distância e por isso tenho ovbiamente a distância entre os 2 pontos.
Por exemplo para as coordenadas iniciais de 550|474 e as finais de 551|470 do mapa, a distância (pela formula) daria 4,123106
A velocidade é um número integral ou decimal que é convertido em horas( formato HH:mm:ss.fff ), por exemplo 16-> 00:16:00.000
Multplicando a velocidade pelo valor da distância obteria como resultado 01:05:58,181 ( 00:16:00,000 X 4.123106 = 01:05:58,181 )
Foi testado no excel e dá o valor correcto. O problema é fazer isto no vb 2010 :(
Como multiplicar uma string em formato de hora e uma decima ou não...
Tenho os seguintes dados, a velocidade e a formula da distância e por isso tenho ovbiamente a distância entre os 2 pontos.
Por exemplo para as coordenadas iniciais de 550|474 e as finais de 551|470 do mapa, a distância (pela formula) daria 4,123106
A velocidade é um número integral ou decimal que é convertido em horas( formato HH:mm:ss.fff ), por exemplo 16-> 00:16:00.000
Multplicando a velocidade pelo valor da distância obteria como resultado 01:05:58,181 ( 00:16:00,000 X 4.123106 = 01:05:58,181 )
Foi testado no excel e dá o valor correcto. O problema é fazer isto no vb 2010 :(
Como multiplicar uma string em formato de hora e uma decima ou não...
consegui resolver o problema.
Tópico encerrado , respostas não são mais permitidas