Tarih parametresi girildiğinde o tarihteki ayın son gününü gg.aa.yyyy cinsinden veren kullanıcı tanımlı fonksiyonu ve çalışma mantığını görelim.
Option Explicit
Function AyinSonGununuBul(tarih As Date)
AyinSonGununuBul = Format((DateSerial(Year(tarih), Month(tarih) + 1, 1)) - 1, "dd/mm/yyyy")
End Function
Option Explicit
Function AyinSonGununuBul(tarih As Date)
'--------------------------------------------------
'Hesaplama mantığı şu:
'
'Verilen tarihte yılı olduğu gibi al.
'Verilen tarihte aya 1 ekle.
'Gün olarak da ayın ilk günü olan 1'i seç.
'Bunu yaparak bir sonraki ayın ilk gününe ulaştık.
'
'Bu tarihten 1 gün çıkarırsak da verdiğimiz
'tarihteki ayın son gününü bulmuş oluyoruz.
'
'Son olarak da sonuç tarihini Format fonksiyonu
'ile gg.aa.yyyy formatında biçimlendiriyoruz.
'--------------------------------------------------
AyinSonGununuBul = Format((DateSerial(Year(tarih), Month(tarih) + 1, 1)) - 1, "dd/mm/yyyy")
End Function