none
Calculo de Horas C# RRS feed

  • Pergunta

  • Galera, alguem pode me ajudar,pois tenho q desenvolver um codigo simplesinho de calculo de horas, só que n ta ficando do jeito q eu preciso, exemplo,

    Hora Inicio = 22:00

    Hora Final 23:00

    tempo total.: 01:00

    Só que se eu fizer 

    Hora Inicio = 22:00

    hora Final  = 04:00

    hora Total = 18:00

    sendo que 22:00 da noite e 04:00 da manha daria o total de 6 horas.

    vejam o codigo como esta

    string hora_inicio = maskedTextBox1.Text;
                string hora_termino = maskedTextBox2.Text;
                TimeSpan hora_final;
                

                hora_final = Convert.ToDateTime(hora_termino) - Convert.ToDateTime(hora_inicio);
                maskedTextBox3.Text = hora_final.ToString();

    alguem me ajuda ae

    sábado, 24 de março de 2012 19:17

Respostas

  • Nelson você pode usar a classe TimeSpan, usando do construtor da classe que suporte long:

    DateTime dtInicio = DateTime.Parse("24/03/2012 22:00:00");
    DateTime dtFinal = DateTime.Parse("25/03/2012 04:00:00");
    
    TimeSpan horaTotal = new TimeSpan(dtFinal.Ticks - dtInicio.Ticks);
    
    string total = horaTotal.ToString(@"hh\:mm");


    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/


    sábado, 24 de março de 2012 23:11
  • Suponho que o teu problema seja quando passa o dia.

    Experimenta assim:

    var horaInicio = Convert.ToDateTime(maskedTextBox1.Text);
    var horaFim = Convert.ToDateTime(maskedTextBox2.Text);
    
    if (horaFim < horaInicio)
    {
        horaFim = horaFim.AddDays(1);
    }
    
    var tempo = horaFim - horaInicio;


    Paulo Morgado

    sábado, 24 de março de 2012 22:28

Todas as Respostas

  • Suponho que o teu problema seja quando passa o dia.

    Experimenta assim:

    var horaInicio = Convert.ToDateTime(maskedTextBox1.Text);
    var horaFim = Convert.ToDateTime(maskedTextBox2.Text);
    
    if (horaFim < horaInicio)
    {
        horaFim = horaFim.AddDays(1);
    }
    
    var tempo = horaFim - horaInicio;


    Paulo Morgado

    sábado, 24 de março de 2012 22:28
  • Nelson você pode usar a classe TimeSpan, usando do construtor da classe que suporte long:

    DateTime dtInicio = DateTime.Parse("24/03/2012 22:00:00");
    DateTime dtFinal = DateTime.Parse("25/03/2012 04:00:00");
    
    TimeSpan horaTotal = new TimeSpan(dtFinal.Ticks - dtInicio.Ticks);
    
    string total = horaTotal.ToString(@"hh\:mm");


    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/


    sábado, 24 de março de 2012 23:11