Let's suppose I work from 22:00 pm till 05:00 am from next day. That will result in 7 hours worked. This is all I got so far.
"Das 18:00 às 22:00: " & With(
{
diferencaHora: DateDiff(
TimeValue(HourValue1.Selected.Value & ":" & MinuteValue1.Selected.Value),
TimeValue(HourValue2.Selected.Value & ":" & MinuteValue2.Selected.Value),
Minutes
)
},
With(
{
resto: Mod(
diferencaHora,
60
)
},
With(
{
ateAs22: DateDiff(
Time(
Value(HourValue1.Selected.Value),
MinuteValue1.Selected.Value,
0
),
Time(
Value(22),
0,
0
),Minutes
)
},
With(
{
diferencaEstatica: Mod(
ateAs22,
60
)
},
If(
TimeValue(HourValue1.Selected.Value & ":" & MinuteValue1.Selected.Value) < Time(
Value(22),
0,
0
) && TimeValue(HourValue2.Selected.Value & ":" & MinuteValue2.Selected.Value) < Time(
Value(22),
0,
0
) && TimeValue(HourValue1.Selected.Value & ":" & MinuteValue1.Selected.Value) > Time(
Value(18),
0,
0
) ,
(diferencaHora - resto) / 60 & " horas e " & resto & " minutos trabalhados",
If(
TimeValue(HourValue1.Selected.Value & ":" & MinuteValue1.Selected.Value) < Time(
Value(22),
0,
0
) && TimeValue(HourValue2.Selected.Value & ":" & MinuteValue2.Selected.Value) > Time(
Value(22),
0,
0
) && TimeValue(HourValue1.Selected.Value & ":" & MinuteValue1.Selected.Value) > Time(
Value(18),
0,
0 ),
(ateAs22 - diferencaEstatica) / 60 & " horas " & diferencaEstatica & " minutos trabalhados",
0
)
)
)
)
)
)
In this code I don't calculate hours per day because all I get is a negative value