none
Calculo horas RRS feed

  • Pergunta

  • Bom dia pessoal, pra variar estou com mais um problema pra resolver

    Tenho alguns campos no meu form em que preciso fazer alguns cálculos e não sei por onde começar, Descrevo abaixo o que preciso fazer:

    1 - tenho 3 campos onde são cadastrados a duração de um determinado processo, e o que preciso é que seja feito a soma destes 3 campos, me retornando o valor em um outro campo já definido...

    PS: No meu banco (postgres) estes campos estão definidos como timestamp without

    Aguardo ajuda

    Atenciosamente

    Paulo

    sábado, 6 de novembro de 2010 12:11

Respostas

Todas as Respostas

  • Paulo,

    Você já fez alguma tentativa? Basicamente você precisaria pegar os valores dos seus TextBoxes, convertê-los em DateTime e calcular a diferença armazenando em um TimeSpan... Poste o código das tentativas que você fez pra conseguirmos te ajudar melhor...


    André Alves de Lima
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima
    sábado, 6 de novembro de 2010 12:36
    Moderador
  • Certo, mas poderia me dar um exemplo para facilitar

    Paulo

    terça-feira, 16 de novembro de 2010 10:14
  • Paulo,

    Seria algo mais ou menos assim:

          string datetime1 = "2010/11/16 09:16"; // aqui você poderia pegar os dados do seu textbox (ou do banco)...
          string datetime2 = "2010/11/16 15:16"; // aqui você poderia pegar os dados do seu textbox (ou do banco)...
    
          TimeSpan diferenca = Convert.ToDateTime(datetime2) - Convert.ToDateTime(datetime1);
          MessageBox.Show(diferenca.ToString());
    
    

    André Alves de Lima
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima
    terça-feira, 16 de novembro de 2010 11:19
    Moderador
  • Coloque 3 datetimepicker na tela.

    Sete a propriedade Format = Time

     

    Para calcular faca o Seguinte:

     

       DateTime data1 = dateTimePicker1.Value;
       DateTime data2 = dateTimePicker2.Value;
    
       TimeSpan resultado = data1 - data2;
    

    terça-feira, 16 de novembro de 2010 13:16
  • Como uso a soma?

    o sinal de + não aceita e nem ++

    terça-feira, 16 de novembro de 2010 15:47
  • Paulo,

    Nesse caso não faz sentido utilizar o operador "+", uma vez que você está calculando a diferença entre dois DateTimes... Ou seja, o sinal apropriado seria o de subtração mesmo, como eu e o Daniel mostramos pra você...


    André Alves de Lima
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima
    terça-feira, 16 de novembro de 2010 16:01
    Moderador
  • Só que eu preciso somar a quantidade de horas
    terça-feira, 16 de novembro de 2010 16:27
  • Paulo,

    Sinceramente não estou entendendo... Como assim você precisa somar a quantidade de horas? Poderia dar um exemplo?


    André Alves de Lima
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima
    terça-feira, 16 de novembro de 2010 17:47
    Moderador
  • Estou fazendo um sistema de programação de abate de aves e um dos cálculos é o horario do abate, onde o calculo a ser feito é:

    horario de carregamento (ex: 12:00) + tempo carregamento (ex: 01:00) + total horas transporte (ex: 02:00)

    o horario do abate então seria as 15:00

     

    Acho q agora deu pra entender

    terça-feira, 16 de novembro de 2010 18:18
  • OK Paulo... Então seria algo como isto:

          DateTime hrCarregamento = new DateTime(2010, 11, 16, 12, 00, 00);
          TimeSpan tempoCarregamento = new TimeSpan(1, 0, 0);
          TimeSpan tempoTransporte = new TimeSpan(2, 0, 0);
    
          DateTime hrAbate = hrCarregamento.Add(tempoCarregamento).Add(tempoTransporte);
          MessageBox.Show(hrAbate.ToLongTimeString());
    
    

    André Alves de Lima
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima
    terça-feira, 16 de novembro de 2010 18:40
    Moderador
  • Certo, só que dentro dos campos DateTime, e TimeSpan, irão ser alocados os textbox, contendo os valores. Previsa fazer alguma conversão?
    terça-feira, 16 de novembro de 2010 18:43
  • Paulo,

    Você precisará converter os valores informados nos TextBoxes para DateTime e TimeSpan... No caso do DateTime, se no TextBox estiver com o formato certinho, é só fazer um Convert.ToDateTime(seuTextBox.Text)... Já os TimeSpans você teria que interpretar os valores do TextBox e construir a instância do TimeSpan passando hora, minuto e segundo...


    André Alves de Lima
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima
    terça-feira, 16 de novembro de 2010 18:47
    Moderador
  • Vc teria algum modelo para converter para timespan?

    terça-feira, 16 de novembro de 2010 20:03
  • Vc teria algum modelo para converter para timespan?

    http://msdn.microsoft.com/pt-br/library/aa332448(VS.71).aspx
    Just Be Humble Malange!
    quarta-feira, 17 de novembro de 2010 17:22
    Moderador
  • Bom pessoal preciso que vcs me ajudem a fazer este cálculo com as horas...

    No meu banco, os campos de hora estão todos como string e o que preciso é que na minha tabela, que já esta formatada para não aceitar nenhum valor menor que 00:00 e maior que 23:59 faça o cálculo das horas.

    Vou deixar abaixo todo o processo de o que estou precisando que seja feito o cálculo, ai quem sabe fique mais fácil para vcs me ajudarem:

    Só há um textbox que será digitado valor, os demais devem ser cáculos conforme descrevo abaixo:

    txtHorario_Carregamento - inserido o horário de carregamento das aves
    txtTempo_Carregamento - campos cargas x 1
    txtHorario_Abate - horario_carregamento + tempo_carregamento + total_transporte
    txtHorario_Retirada_Racao - horario_carregamento - horas_jejum
    txtTotal_Transporte - ja está acertado
    txtTotal_Jejum - horario_abate - retirada_racao

    Todos os campos acima tem q ser em formato de horas

    Acho que agora ficou mais fácil de entender

    Espero que possam me ajudar

    Atenciosamente

    Paulo 

    quarta-feira, 17 de novembro de 2010 17:59
  • Paulo,

    Conseguiu solucionar essa sua questão?


    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima
    quinta-feira, 23 de dezembro de 2010 12:44
    Moderador