Quang_Hải
Thành viên gạo cội
- Tham gia
- 21/2/09
- Bài viết
- 6,069
- Được thích
- 7,992
- Nghề nghiệp
- Làm đủ thứ
Mấy hôm rồi có công việc liên quan đến việc cần tính tuổi chính xác của người phụ thuộc để hưởng giảm trừ thuế TNCN
Nếu dùng hàm Datedif thì VBA không hỗ trợ. Loay hoay tìm trên GPE nhưng không tìm được (chắc trước giờ không ai có nhu cầu). Sau mấy hôm vật vã thì mình tạm thời áp dụng code này. Nay post lên để mọi người góp ý nếu cần phải hoàn thiện thêm, và cũng để cho ai có nhu cầu
Nếu dùng hàm Datedif thì VBA không hỗ trợ. Loay hoay tìm trên GPE nhưng không tìm được (chắc trước giờ không ai có nhu cầu). Sau mấy hôm vật vã thì mình tạm thời áp dụng code này. Nay post lên để mọi người góp ý nếu cần phải hoàn thiện thêm, và cũng để cho ai có nhu cầu
Mã:
Public Function ExactAge(BirthDate As Variant) As String
Dim YearOld As Integer, MonthOld As Integer, DayOld As Integer, DOB As Date
If Not IsDate(BirthDate) Then Exit Function
DOB = CDate(BirthDate)
If DOB > Date Then Exit Function
YearOld = Year(DOB)
MonthOld = Month(DOB)
DayOld = Day(DOB)
YearOld = Year(Date) - YearOld
MonthOld = Month(Date) - MonthOld
DayOld = Day(Date) - DayOld
If Sgn(DayOld) = -1 Then
DayOld = 30 - Abs(DayOld)
MonthOld = MonthOld - 1
End If
If Sgn(MonthOld) = -1 Then
MonthOld = 12 - Abs(MonthOld)
YearOld = YearOld - 1
End If
ExactAge = YearOld & " Year(s) " & MonthOld & " Month(s) " & DayOld & " Day(s) old."
End Function