关于日期天数计算的几个函数!

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
关于日期天数计算几个函数
今天早上突然要用到一个计算某月有多少天的函数,翻了半天没找到系统自带着中函数,于是动手写了一个,如下:

**返回某个月有多少天FUNCTIONHowMonthDay()  PARAMETERScDate  LOCALDaysasInteger,YearsasInteger  IF!TYPE("cDate")=="D"      MESSAGEBOX("参数类型不正确,应该为日期型","系统提示!")      RETURN  ENDIF      Days=IIF(INLIST(MONTH(cDate),1,3,5,7,8,10,12),31,30)  **闰年计算方法  Years=YEAR(cDate)  IFMONTH(cDate)==2      Days=IIF(Years%400==0OR(Years%4==0ANDYears%100<>0),29,28)  ENDIF  RETURNDaysENDFUNC  

后来郑宇大哥给我提供了一个返回月底的函数。如下:
PROCEDUREEDOM*FUNCTION:返回本月月底*M.L.Y1998.8.8PARAMETERSDATE_TODAYPRIVATEALLSETDATETOANSISETCENTURYONIFMONTH(DATE_TODAY)<12    RETURNCTOD(STR(YEAR(DATE_TODAY),4,0)+".";              +STR(MONTH(DATE_TODAY)+1,2,0)+".01")-1ELSE    RETURNEDOY(DATE_TODAY)ENDIF
思量了半天发现返回月底可能还要简单一点,我改进了一下:

cDate=Date()

??cDate+(32-DAY(cDate))-DAY(cDate+(32-DAY(cDate)))

最后用这个思路改进了一下返回某月有多少天的函数,如下:

FUNCTIONHowMonthDay()  PARAMETERScDate  LOCALDaysasInteger  IF!TYPE("cDate")=="D"      MESSAGEBOX("参数类型不正确,应该为日期型","系统提示!")      RETURN  ENDIF      Days=DAY(cDate+(32-DAY(cDate))-DAY(cDate+(32-DAY(cDate))))  RETURNDaysENDFUNC  

其实最重要的只有一句:Days=DAY(cDate+(32-DAY(cDate))-DAY(cDate+(32-DAY(cDate))))也不用管闰年平年了,省事。

要是返回月底,那这句改为:cDate+(32-DAY(cDate))-DAY(cDate+(32-DAY(cDate)))即可

原理就是根据增加值来计算当月的下一个月超出几天,然后减去几天就是当月的最后一天了。
<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值