Visual Basic.NET - Como desglosar turno en horas diurnas y horas nocturnas

 
Vista:
sin imagen de perfil
Val: 11
Ha disminuido su posición en 7 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Como desglosar turno en horas diurnas y horas nocturnas

Publicado por juan francisco (5 intervenciones) el 09/01/2020 16:51:17
Necesito ayuda quiero un algoritmo o función que devuelva o desglose las horas diurnas y las horas nocturnas el horario nocturno es de 22:00 a 6:00, tengo el siguiente código vb6 lo quiero pasar a vb.net pero no se como mejorar este código o si hay alguna forma de optimizarlo y simplificarlo, gracias
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Dim he, hs As Variant
he = Format(Text1, "hh:mm")
hs = Format(Text2, "hh:mm")
If TimeValue(he) < TimeValue(hs) And TimeValue(he) < #10:00:00 PM# And TimeValue(hs) <= #10:00:00 PM# Then
    hd = TimeValue(he) - TimeValue(hs)
    hn = "00:00"
    Debug.Print "menor"
ElseIf TimeValue(he) < #10:00:00 PM# And TimeValue(hs) > #10:00:00 PM# And TimeValue(hs) <= #6:00:00 AM# Then
    hd = TimeValue(he) - #10:00:00 PM#
    hn = TimeValue(hs) + 1 - #10:00:00 PM#
    Debug.Print hn
    If hn > 0.333333333333334 Then
        MsgBox "Revise el turno, las horas nocturnas no puede sobrepasar las 8 horas"
        Text2.SetFocus
    End If
Else
    hd = #10:00:00 PM# - TimeValue(he)
    hn = TimeValue(hs) + 1 - #10:00:00 PM#
    Debug.Print hn
    If hn > 0.333333333333334 Then
        MsgBox "Revise el turno, las horas nocturnas no puede sobrepasar las 8 horas"
        Text2.SetFocus
    End If
End If
Label3 = Format(hd, "hh:mm")
Label4 = Format(hn, "hh:mm")
Label8 = Format(hds, "hh:mm")
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Phil Rob
Val: 2.250
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Como desglosar turno en horas diurnas y horas nocturnas

Publicado por Phil Rob (577 intervenciones) el 09/01/2020 17:46:50
hola,

Quizá este puede te ayudar ...

1
2
3
4
5
6
7
8
9
10
11
12
' Tengo un  TextBox llamada TBHora.Text
 
        Dim Hora As String
        Hora = String.Format("{0:HH:mm:ss}", CType(TBHora.Text, DateTime))
 
        Select Case Hora
            Case "00:00" To "06:00:01", Is >= "22:00"
                MessageBox.Show("Noche")
            Case Else
                MessageBox.Show("Diá")
        End Select
' ... ... ...

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 11
Ha disminuido su posición en 7 puestos en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Como desglosar turno en horas diurnas y horas nocturnas

Publicado por juan francisco (5 intervenciones) el 09/01/2020 18:52:23
ok, me puedo hacer una idea pero es un turno por ejemplo dos textbox hora inicio 15:00 hora final 01:00 sería 7 horas diurnas y 3 nocturnas horas totales del turno 10 horas. muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 2.250
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Como desglosar turno en horas diurnas y horas nocturnas

Publicado por Phil Rob (577 intervenciones) el 10/01/2020 08:28:45
Hola,

Penso comprender bien el problema : tienes que contar las horas de trabajo.

El codigo siguiente conta bien las horas, sinmirar si diá o noche :

1
2
3
4
5
6
7
8
9
10
11
12
13
' Tengo dos TextBox llamadas TBHoraInicial y TBHoraFinal
        Dim HoraIni As DateTime
        Dim HoraFin As DateTime
        Dim Duracion As TimeSpan
 
        HoraIni = CType(TBHoraInicial.Text, DateTime)
        HoraFin = CType(TBHoraFinal.Text, DateTime)
 
        If HoraFin < HoraIni Then
            HoraFin = HoraFin.AddHours(24)
        End If
 
        Duracion = HoraFin - HoraIni   ' Este el tiempo de trabajo

Que tenga un buen diá.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar