Hàm tính ngày tháng (1 người xem)

  • Thread starter Thread starter TuanYM
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

TuanYM

Thành viên mới
Tham gia
8/1/09
Bài viết
2
Được thích
0
Xin chỉ giúp hàm tính ngày tháng theo công thức sau
VD: Ngày 01/05/09 đến ngày 10/09/11 thì tính từ ngày 01/05/09-01/05/11 là bao nhiêu ngày và từ ngày 01/05/11 - 10/09/11 là bao nhiêu ngày
 
Xin chỉ giúp hàm tính ngày tháng theo công thức sau
VD: Ngày 01/05/09 đến ngày 10/09/11 thì tính từ ngày 01/05/09-01/05/11 là bao nhiêu ngày và từ ngày 01/05/11 - 10/09/11 là bao nhiêu ngày
Bạn nghiên cứu hàm DATEDIF nhé:
Cú pháp hàm DATEDIF
=DATEDIF(Date1,Date2,Interval)
Có 3 đối số:
Date1: ngày đầu
Date2: ngày cuối
Interval: quy định đơn vị thời gian trả về
Ngày Date1 phải trước hoặc bằng ngày Date2.

Interval nhận các đối số sau:
"m": Trả về số tháng giữa Date1 và Date2.
"d: Trả về số ngày giữa Date1 và Date2.
"y": Trả về số năm giữa Date1 và Date2.
"ym": Trả về số tháng giữa Date1 và Date2, xem như Date1 và Date2 có năm giống nhau.
"yd": Trả về số ngày giữa Date1 và Date2, xem như Date1 và Date2 có năm giống nhau.
"md": Trả về số ngày giữa Date1 và Date2, xem như Date1 và Date2 có tháng và năm giống nhau.
Chú ý các đối số trong Interval phải để trong cặp nháy kép.
 
Xin chỉ giúp hàm tính ngày tháng theo công thức sau
VD: Ngày 01/05/09 đến ngày 10/09/11 thì tính từ ngày 01/05/09-01/05/11 là bao nhiêu ngày và từ ngày 01/05/11 - 10/09/11 là bao nhiêu ngày
Tính số ngày giữa 2 thời điểm chỉ đơn giản là lấy ngày sau trừ ngày trước mà chẳng cần đến bất cứ hàm nào
Lưu ý: Sau khi trừ xong, nếu không ra kết quả thì có nghĩa là ngày tháng đã nhập sai!
 
Tính số ngày giữa 2 thời điểm chỉ đơn giản là lấy ngày sau trừ ngày trước mà chẳng cần đến bất cứ hàm nào
Lưu ý: Sau khi trừ xong, nếu không ra kết quả thì có nghĩa là ngày tháng đã nhập sai!
Phải ra 2 kết quả mà sư phụ: Số ngày tròn năm và số ngày lẻ năm.
Nếu A1 là ngày đầu, A2 là ngày cuối:
Số ngày tròn năm:
Mã:
=EDATE(A1,(YEAR(A2)-YEAR(A1))*12)-A1
Số ngày lẻ năm:
Mã:
=A2-EDATE(A1,(YEAR(A2)-YEAR(A1))*12)
 
Phải ra 2 kết quả mà sư phụ: Số ngày tròn năm và số ngày lẻ năm.
Nếu A1 là ngày đầu, A2 là ngày cuối:
Số ngày tròn năm:
Mã:
=EDATE(A1,(YEAR(A2)-YEAR(A1))*12)-A1
Số ngày lẻ năm:
Mã:
=A2-EDATE(A1,(YEAR(A2)-YEAR(A1))*12)
ngày tròn hay ngày lẻ gì mình trừ cũng ra mà anh. anh thử lại xem.
 
Phải ra 2 kết quả mà sư phụ: Số ngày tròn năm và số ngày lẻ năm.
Nếu A1 là ngày đầu, A2 là ngày cuối:
Số ngày tròn năm:
Mã:
=EDATE(A1,(YEAR(A2)-YEAR(A1))*12)-A1
Số ngày lẻ năm:
Mã:
=A2-EDATE(A1,(YEAR(A2)-YEAR(A1))*12)
Đó là vì bạn "đoán" thôi ---> Chẳng hề thấy tác giả hỏi vụ náy
Tóm lại: Hỏi sao trả lời nấy!
----------------
Ngoài ra; Nếu ngày đầu là 10/5/09 còn ngày cuối là 1/5/11 thì hổng biết tính mấy vụ "tròn' và "lẻ" này ra bi nhiêu đây?
Ẹc... Ẹc...
 
Lần chỉnh sửa cuối:
mình có bài như thế này,có ngày bắt đầu,tổng số ngày cần hoàn thành,làm cách nào để tính ra ngày kết thúc,mà phải trừ chủ nhật và ngày lễ ra nha,giúp mình với....
 
Lần chỉnh sửa cuối:
Đề tài đã lâu không biết còn cần nữa không

mình có bài như thế này,có ngày bắt đầu,tổng số ngày cần hoàn thành,làm cách nào để tính ra ngày kết thúc,mà phải trừ chủ nhật và ngày lễ ra nha,giúp mình với....
đã lâu rồi, không biết bạn còn cần nữa không, thôi thì cứ đưa lên đại, chắc có thành viên cũng đang cần,
nếu bị mất code thì nhập đoạn code dưới vào

Public Function NgayKT(Tg1 As Date, SN As Double, Le As Range, Tf As Boolean) As Date
Dim ChuNhat As Byte, a, i, X, Y, Z, Cn, CnC, N As Integer, Nt As Date
X = 0
Y = 0


If Tf = True Then
ChuNhat = 1
Else
ChuNhat = 7
End If


For Each X In Le
Z = Z + 1
Next


For i = Tg1 To Tg1 + SN Step 1 'Vong lap thoi gian


If Weekday(i, vbSunday) = 1 Or Weekday(i, vbSunday) = ChuNhat Then 'Tim So ngay chu nhat
Cn = Cn + 1
End If

For a = 0 To Z Step 1 ' So Sanh Ngay le
If i = Le(a) Then 'Tim So ngay le
Y = Y + 1
End If
Next a
Next i


Nt = Tg1 + SN + Cn + Y


For i = Tg1 + SN + 1 To Nt Step 1 'Vong lap thoi gian
For a = 0 To Z Step 1
If i = Le(a) Then 'Tim So ngay le
N = N + 1
End If
Next a
If Weekday(i, vbSunday) = ChuNhat Or Weekday(i, vbSunday) = 1 Then
CnC = CnC + 1
End If
Next i
Nt = Nt + N + CnC
If Tf = True Then
If Weekday(Nt, sunday) = 1 Then
Nt = Nt + 1
End If
Else
Select Case Nt
Case Weekday(Nt, sunday) = 1
Nt = Nt + 1
Case Weekday(Nt, sunday) = 7
Nt = Nt + 2
Case Else
Nt = Nt
End Select
End If
Nt = Nt
For a = 0 To Z Step 1
If Nt = Le(a) Then
Nt = Nt + 1
Else
Nt = Nt
End If
Next
NgayKT = Nt
End Function
 

File đính kèm

Lần chỉnh sửa cuối:
chuấn khong cần chỉnh
 

File đính kèm

Lần chỉnh sửa cuối:
Web KT

Bài viết mới nhất

Back
Top Bottom