khonggianviet > 02-07-17, 12:04 AM
ongke0711 > 02-07-17, 03:29 AM
Option Explicit[/font]
Public Function TimNgayDenHan(NgayBD As Date, SoNgayThem As Integer, TinhT7CN As Boolean) As Date
' |--------------------------------------------------------------------------|
' | Tim ngày den han tu mot ngay cho truoc + so ngay cong them. Ham tinh 2 |
' | truong hop: |
' | 1- Không tru ngay T7, CN và có tru ngày nghi Le). |
' | 2-Có tru ngay T7, CN và ngày nghi Le. |
' |--------------------------------------------------------------------------|
Dim tmpSoNgayThem As Integer
Dim tmpNgay As Date
Dim tmpNgayBD As Date
Dim i As Integer
tmpSoNgayThem = SoNgayThem
tmpNgayBD = NgayBD
tmpNgay = NgayBD
i = 0
Select Case TinhT7CN
Case True
Do Until i = SoNgayThem
If DCount("*", "tblNgayNghiLe", "NgayLe = #" & tmpNgay & "#") > 0 Then
tmpSoNgayThem = tmpSoNgayThem + 1
Else
i = i + 1
End If
tmpNgay = tmpNgay + 1
Loop
Case False
Do Until i = SoNgayThem
If Weekday(tmpNgay) = 1 Or Weekday(tmpNgay) = 7 Then
tmpSoNgayThem = tmpSoNgayThem + 1
ElseIf DCount("*", "tblNgayNghiLe", "NgayLe = #" & tmpNgay & "#") > 0 Then
tmpSoNgayThem = tmpSoNgayThem + 1
Else
i = i + 1
End If
tmpNgay = tmpNgay + 1
Loop
End Select
TimNgayDenHan = DateAdd("d", tmpSoNgayThem, tmpNgayBD)
Do Until Weekday(TimNgayDenHan) <> 1 And Weekday(TimNgayDenHan) <> 7 And DCount("*", "tblNgayNghiLe", "NgayLe = #" & TimNgayDenHan & "#") = 0
TimNgayDenHan = TimNgayDenHan + 1
Loop
[font=Tahoma]End Function