Office中国论坛/Access中国论坛

标题: 如何获得上月的实际天数? [打印本页]

作者: ouxingwang    时间: 2004-2-10 02:59
标题: 如何获得上月的实际天数?
看了旧贴,有如何获得当前日期的本月实际天数,现在我想获得当前日期上月的实际天数,请各位高手帮我改一改以下代码(该代码是如何获得当前日期的本月天数):
Public Function MonthDays(strday As Date) As Integer    '取得月份中的天数函数
    Dim MonthfristDay, nextMonthfristDay As Date
   
    MonthfristDay = DateAdd("d", -Day(strday) + 1, strday)                      '当月第一天
    nextMonthfristDay = DateAdd("M", 1, DateAdd("d", -Day(strday) + 1, strday)) '下月第一天
   
    MonthDays = DateDiff("d", MonthfristDay, nextMonthfristDay)
End Function

[此贴子已经被作者于2004-2-9 19:39:06编辑过]


作者: hi-wzj    时间: 2004-2-10 04:34
Function 本月天数(日期 As Date) As Byte
本月天数 = DateSerial(Year(日期), Month(日期) + 1, Day(日期)) - 日期
End Function
同理上月的天数就是将加1改为减1。
更多相关的例子可看:http://accessoft.com/Article_Show.asp?ArticleID=54

[此贴子已经被作者于2004-2-9 20:44:04编辑过]


作者: cg1    时间: 2004-2-10 04:42
.  
如何得知一个月有多少天,最后一天的日期是多少?
作者:ec  更新日期:2003-3-15  浏览人次:87



专题地址:http://access911.net/index.asp?board=4&recordid=73FAB61E10DC


问题:


如何得知一个月有多少天,最后一天的日期是多少?


方法一:


txtCurrentMonthFirstDay.Defaultvalue=FORMat(Now(),"yyyy-mm") & "-1"
txtCurrentMonthLastDay.Defaultvalue=DateAdd("m",1,(FORMat(Now(),"yyyy-mm") & "-1"))-1





方法二:



以下以6月为例说明:
用函数 dateserial(2002,6,1) 可以返回 2002-6-1
用函数 dateserial(2002,7,1)-1 可以返回 2002-6-30
取到某年某月的下一个月的一号减去一天就是了!
Function EndOfMonth(D As Variant) As Variant
    EndOfMonth = DateSerial(Year(D), Month(D) + 1, 0)
End Function



  


录入:changechange(CSDN) 责任编辑:cg1
作者: ouxingwang    时间: 2004-2-10 15:12
  感谢2楼对我的指点,我把"+1",改为“-1”(我需要当前系统日期的上一个月的实际天数),系统提示“运行时错误,溢出”。我不知是什么原因,请版主继续指点为盼。
作者: hi-wzj    时间: 2004-2-12 05:16
抱歉,是我回答问题太马虎了。公式应该是:
日期 - DateSerial(Year(日期), Month(日期) - 1, Day(日期))
因为是本日期(大的值)减上月同日的值(小值)才对。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3