none
Comparar 2 horas RRS feed

  • Pregunta

  • Buen dia, 

    quisiera saber cual es la mejor manera de comparar 2 horas ingresadas por el usuario con un datetimer, lo que necesito es comparar las 2 horas que ingresa el usuario en los datetimer y traerme el resultado en un textbox, 

    Yo tengo una funcion pero quiero saber si es la mejor manera o si existe alguna mejor. 

    Este es el codigo que tengo 

     Private Function Minutos(fecha1 As DateTime, fecha2 As DateTime) As Integer
            Dim dias As Integer
            dias = DateDiff(DateInterval.Minute, fecha2, fecha1)
            Return dias
        End Function
        Private Sub dtpL1F_LostFocus(sender As Object, e As EventArgs) Handles dtpL1F.LostFocus

            If dtpL1.Value.Hour = PrimeraPieza.dtpT1.Value.Hour Or dtpL1.Value.Hour = PrimeraPieza.dtpT2.Value.Hour And dtpL1.Value.Minute = PrimeraPieza.dtpT2.Value.Minute Or dtpL1.Value.Hour = PrimeraPieza.dtpT3.Value.Hour Then
                MsgBox("TIEMPO MUERTO CORRESPONDE A PRIMERA PIEZA", MsgBoxStyle.Information, "TIEMPO")
                Exit Sub
            Else

                txtL1.Text = Minutos(dtpL1F.Value.ToShortTimeString, dtpL1.Value.ToShortTimeString).ToString



            End If
        End Sub

    Gracias 

    martes, 12 de marzo de 2019 14:53

Respuestas

  • A mí me gusta más usar las funciones nativas del DateTime, que valen para cualquier lenguaje de .NET, en lugar de usar el DateDiff que es específico de VB. Es decir, en lugar de esto:

     dias = DateDiff(DateInterval.Minute, fecha2, fecha1)

    usar esto otro:

     dias = (fecha2 - fecha1).TotalMinutes

    Por cierto, es bastante mala idea llamarle "dias" a la variable cuando en realidad lo que contiene son "minutos". Al compilador le da lo mismo, por supuesto, pero a las personas que lean el código puede causarles confusión.

    martes, 12 de marzo de 2019 15:08