VB 中如何取给定月的最后一天,(已知year,month,字符串 手工录入的)

VB 中如何取给定月的最后一天,(已知year,month,字符串 手工录入的)
‘ If month = "1" or "3" or "5" or "7" or "8" or "10" or "12" Then
’ fsdate = year & "-" & month& "-01"
‘ fedate = year & "-" & month& "-31"
’ Else
fsdate = year & "-" & month& "-01"
fedate = year & "-" & month& ????????????
‘ End If

代码思路:如要提取5月的最后一天日期  那就 6月1日 减一  那就是5月的最后一天了。


Public Function Data_GetMonth_Last_Day(TmpD As Date) As Date    '获取指定日期 该月的 最后一天 格式 yyyy-MM-dd
On Error Resume Next
            Dim PY As Integer
            Dim PM As Integer
            Dim pd As Integer
    
            PY = DatePart("yyyy", TmpD)
            PM = DatePart("m", TmpD)
            pd = DatePart("d", TmpD)
           '**********************************************
           
            If CInt(PM) = 12 Then
               PY = PY + 1
               PM = 1
            Else
               PM = PM + 1
            End If
           '**********************************************
Data_GetMonth_Last_Day = Format(DateAdd("D", -1, CDate(PY & "-" & PM & "-" & "01")), "yyyy-MM-dd")
End Function

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-04
dim d as date
d=dateserial(年,月,1) '把年,月,日合成日期,日为一号,每个月的开始日总是肯定的吧

d=dateadd("m",1,d) '然后对日期加一个月

d=dateadd("d",-1,d) '再然后对日期减一天,就是本月的最后一号。本回答被提问者和网友采纳
第2个回答  2014-03-04
很简单,就用比较大小,最大的那个数就是最后一天
第3个回答  2014-03-04
4、6、9、11 月只有 30号吧
2月更复杂,闰年 29号,平年 28号

就写在上面 的 if 结构中