Tinh số ngày trong một tháng

Liên hệ QC

killsometime

Thành viên mới
Tham gia
25/3/08
Bài viết
15
Được thích
4
Xin chào các bác,
Để tính số ngày trong một tháng , em không biết mình sẽ tính như thế nào, chẳng hạn tháng 2/2008 có 28 ngày.
Xin các bác một giải pháp VBA hay hàm cũng được.
 
He... he... cái này chả cần tới đại đao VBA đâu!
Giã sử A1 bạn gõ 2008, A2 bạn gõ số 2
Vậy tổng số ngày của tháng 2/2008 là =DAY(DATE(A1,A2+1,0))
Mấy vụ ngày tháng năm này nói rất nhiều lần trên diển đàn rồi, bạn search với từ khóa "Tìm ngày cuối tháng" sẽ có hàng đóng
ANH TUẤN
 
Upvote 0
Thanks bác, nhưng mục đích là mình muốn xây dựng một hàm tính ngày cụ thể trong 1 tháng, ví dụ nhập 02/02/2008 trả về giá trị là tháng này có 28 ngày. Chờ các bác cho ý kiến thêm.
 
Upvote 0
Thanks bác, nhưng mục đích là mình muốn xây dựng một hàm tính ngày cụ thể trong 1 tháng, ví dụ nhập 02/02/2008 trả về giá trị là tháng này có 28 ngày. Chờ các bác cho ý kiến thêm.

VD ô A1 chứa giá trị ngày tháng, Ô A2 sẽ trả về số ngày trong tháng :
Tại Ô A2 : =DAY(DATE(YEAR(A1),MONTH(A1)+1,0))
 
Upvote 0
EOM (yyyy,mm).

Chia xẻ với bạn, hàm mình viết ra vẫn "sướng hơn" món dọn sẵn@#!^%
Bạn thử cách này xem.

Thông thường ngày cuối tháng được xác định bởi 2 đối số năm và tháng: EOM (yyyy,mm).

nếu có ô B2 chứa năm, C2 chứa tháng, bạn dùng công thức này.
=CHOOSE($C$2,31,IF(OR(MOD($B$2,400)=0,AND(MOD($B$2,4)=0,MOD($B$2,100)<>0)),29,28),31,30,31,30,31,31,30,31,30,31)

Viết bằng VBA như sau:
PHP:
Public Function EOM(ByVal YYYY As Integer, MM As Integer) As Integer
    
    'Dim t2 As Integer
    Dim mo As Variant
    
    'If YYYY Mod 4 = 0 And (YYYY Mod 100 <> 0) Or (YYYY Mod 400 = 0) Then t2 = 29 Else t2 = 28
    
    't2 = 28 - CInt(YYYY Mod 4 = 0 And (YYYY Mod 100 <> 0) Or (YYYY Mod 400 = 0))
    
    'mo = Array(31, t2, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
    
    mo = Array(31, 28 - CInt(YYYY Mod 4 = 0 And (YYYY Mod 100 <> 0) Or (YYYY Mod 400 = 0)), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
    
    EOM = mo(MM - 1)
    
End Function

**~****~****~**
 
Upvote 0
Xin góp thêm một hàm tính ngày trong tháng (DoM = Day of Month).
Hàm này chỉ chạy khi giá trị cần tính là một giá trị ngày tháng (Date).
Và thật ra thì nó cũng là cái công thức mà bác AnhTuan1066Hoangdanh282vn đã nói ở trên, được nâng cấp lên tí thôi...
PHP:
Public Function DoM(Ngay As Date)
    DoM = Day(DateSerial(Year(Ngay), Month(Ngay) + 1, 0))
End Function
Ví dụ, ở ô A1 là một giá trị ngày tháng nào đó, tại B1, gõ = EMO(A1), sẽ cho biết cái tháng của giá trị ở A1 có bao nhiêu ngày.
A1 = 02/02/2008: DOM(A1) = 29
A2 = 07/02/2007: DOM(A2) = 28
A3 = 16/04/2008: DOM(A3) = 30
v.v...
 
Upvote 0
Làm thế nào cũng dc, miển ra kết quả đúng là OK... Nhưng cái việc học nó lại ko quan trọng kết quả mà quan trọng quá trình... Hiểu dc cột lổi vấn đề vẫn ngon hơn là.. ăn sẳn
ANH TUẤN
 
Upvote 0
Web KT

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

Back
Top Bottom