Function phut(SRng As Range, ERng As Range, HRng As Range)
'--------------------------------------------------------------
'loai tru loi
If ERng.Value <= SRng.Value Then
phut = 0
Exit Function
End If
'---------------------------------------------------------------
'Gan gia tri ngay va gio
SDay = DateValue(SRng.Value)
Stime = TimeValue(SRng.Value)
EDay = DateValue(ERng.Value)
Etime = TimeValue(ERng.Value)
SM = TimeValue("8:00:00 am")
EM = TimeValue("12:00:00 pm")
SA = TimeValue("1:00:00 pm")
EA = TimeValue("5:30:00 pm")
'---------------------------------------------------------------
'Tinh phut tu Start Time den cuoi gio ngay dau tien
If HRng.Find(SDay) Is Nothing Then
If Weekday(SDay, vbSaturday) = 1 Or Weekday(SDay, vbSunday) = 1 Then
If Stime < SM Then
phut1 = (EM - SM) 1440
ElseIf Stime < EM Then
phut1 = (EM - Stime) 1440
End If
Else
If Stime < SM Then
phut1 = (EM - SM + EA - SA) 1440
ElseIf Stime < EM Then
phut1 = (EM - Stime + EA - SA) 1440
ElseIf Stime < SA Then
phut1 = (EA - SA) 1440
ElseIf Stime < EA Then
phut1 = (EA - Stime) 1440
End If
End If
End If
'---------------------------------------------------------------
'Tinh phut tu End Time den cuoi gio ngay cuoi cung
If HRng.Find(EDay) Is Nothing Then
If Weekday(EDay, vbSaturday) = 1 Or Weekday(EDay, vbSunday) = 1 Then
If Etime < SM Then
phut2 = (EM - SM) 1440
ElseIf Etime < EM Then
phut2 = (EM - Etime) 1440
End If
Else
If Etime < SM Then
phut2 = (EM - SM + EA - SA) 1440
ElseIf Etime < EM Then
phut2 = (EM - Etime + EA - SA) 1440
ElseIf Etime < SA Then
phut2 = (EA - SA) 1440
ElseIf Etime < EA Then
phut2 = (EA - Etime) 1440
End If
End If
End If
'-------------------------------------------------------------
'Tinh khoang thoi gian cac ngay lam full time
i = SDay + 1
Do While i <= EDay
If HRng.Find(i) Is Nothing Then
If Weekday(i, vbSaturday) = 1 Or Weekday(i, vbSunday) = 1 Then
phut3 = phut3 + (EM - SM) 1440
Else
phut3 = phut3 + (EM - SM + EA - SA) 1440
End If
End If
i = i + 1
Loop
'-------------------------------------------------------------
phut = phut1 - phut2 + phut3
End Function