diegostf 0 Denunciar post Postado Março 9, 2009 Boa noite pessoal! tenho uma duvida e gostaria da ajuda de voces! estou tentando fazer o Seguinte, quando Digito por exemplo: 120 em um textbox o programa converter isso em horas! por exemplo! eu digito 120 ele me mostra 2 Horas! eu digito 70 ele me mostra 1:10 eu digito 80 ele me mostre 1:20 e assim por diante.... eu tentei fazer o Seguinte! DIM hora as integer IF textbox.text <=60 THEN hora = textbox.text msgbox(Hora) END IF IF textbox.text >60 THEN hora = textbox.text / 60 msgbox(hora.toString("#.##")) END IF entao quando eu mandava converter por Exemplo 70 Minutos que e igual a 1:10 ele me mostra o seguinte valor 1,1666666666667 ai por isso coloquei no msgbox (hora.toString("#.##")) para mostrar apenas 2 casas decimais! e quando mando ele converter 70 Minutos ele me da o valor errado de 1:17 que no caso teria que ser 1:10 mando ele converter 80 Minutos que no caso seria 1:20 ele me mostra 1:33 nao sei porque ta dando o valor errado se alguem puder ajudar eu agradeço! abraços! Compartilhar este post Link para o post Compartilhar em outros sites
Claudio Neto 3 Denunciar post Postado Março 9, 2009 Tópico transferido de VISUAL BASIC para Plataforma .NET Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Março 9, 2009 Você precisa usar módulo nesse caso. Se você dividir o número por 60, você vai ter a quantidade de horas. No seu exemplo deu 1.166666, arredondando uma hora. Para saber os minutos use módulo (textbox.text % 60), no caso se o valor for 70, o resultado dessa conta será 10, que são seus 10 minutos. Compartilhar este post Link para o post Compartilhar em outros sites
diegostf 0 Denunciar post Postado Março 10, 2009 Você precisa usar módulo nesse caso. Se você dividir o número por 60, você vai ter a quantidade de horas. No seu exemplo deu 1.166666, arredondando uma hora. Para saber os minutos use módulo (textbox.text % 60), no caso se o valor for 70, o resultado dessa conta será 10, que são seus 10 minutos. Entao Oenning como estou começando a usar vb a pouco tempo me desculpe pela ignorancia, mais baseado em que voce disse teria que ficar assim? ou nao! If TextBox.Text <= 60 Then hora = TextBox.Text MsgBox(hora) End If If TextBox.Text > 60 Then hora = module(textbox.text % 60) MsgBox(hora.ToString("#.##")) End If Abraço Compartilhar este post Link para o post Compartilhar em outros sites
Oenning 0 Denunciar post Postado Março 10, 2009 Quase, na verdade existe um problema com as variáveis, crie uma para minutos e outra para hora. Veja: If TextBox.Text <= 60 Then minutos = TextBox.Text hora = "00" MsgBox(hora + ":" + minutos) End If If TextBox.Text > 60 Then hora = textbox.text / 60 minutos = textbox.text % 60 MsgBox(hora + ":" + minutos) End If Neste caso eu ignorei qualquer tipo de conversão de dados, quando você for fazer, terá que trabalhar nessa conversão e no arredondamento das horas. Compartilhar este post Link para o post Compartilhar em outros sites