|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
InnoDB事务型数据库的首选引擎,支持ACID事务,支持行级锁定函数关于日期天数盘算的几个函数!
明天早上俄然要用到一个盘算某月有几天的函数,翻了半天没找到体系自带着中函数,因而下手写了一个,以下:
**前往某个月有几天FUNCTIONHowMonthDay()PARAMETERScDateLOCALDaysasInteger,YearsasIntegerIF!TYPE("cDate")=="D"MESSAGEBOX("参数范例不准确,应当为日期型","体系提醒!")RETURNENDIFDays=IIF(INLIST(MONTH(cDate),1,3,5,7,8,10,12),31,30)**闰年盘算办法Years=YEAR(cDate)IFMONTH(cDate)==2Days=IIF(Years%400==0OR(Years%4==0ANDYears%1000),29,28)ENDIFRETURNDaysENDFUNC
厥后郑宇年老给我供应了一个前往月尾的函数。以下:
PROCEDUREEDOM*FUNCTION:前往本月月尾*M.L.Y1998.8.8PARAMETERSDATE_TODAYPRIVATEALLSETDATETOANSISETCENTURYONIFMONTH(DATE_TODAY)<12RETURNCTOD(STR(YEAR(DATE_TODAY),4,0)+".";+STR(MONTH(DATE_TODAY)+1,2,0)+".01")-1ELSERETURNEDOY(DATE_TODAY)ENDIF
思考了半天发明前往月尾大概还要复杂一点,我改善了一下:
cDate=Date()
??cDate+(32-DAY(cDate))-DAY(cDate+(32-DAY(cDate)))
最初用这个思绪改善了一下前往某月有几天的函数,以下:
FUNCTIONHowMonthDay()PARAMETERScDateLOCALDaysasIntegerIF!TYPE("cDate")=="D"MESSAGEBOX("参数范例不准确,应当为日期型","体系提醒!")RETURNENDIFDays=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)))便可
道理就是依据增添值来盘算当月的下一个月超越几天,然后减往几天就是当月的最初一天了。
支持多种存储引擎。 |
|