国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

一個自己封裝的日期時間操作的用戶對象

2024-07-21 02:07:24
字體:
供稿:網(wǎng)友

最大的網(wǎng)站源碼資源下載站,


$pbexportheader$nvo_datetime.sru$pbexportcomments$日期時間操作類forwardglobal type nvo_datetime from nonvisualobjectend typetype stc_systemtime from structure within nvo_datetimeend typeend forwardtype stc_systemtime from structureintegerwyearintegerwmonthintegerwdayofweekintegerwdayintegerwhourintegerwminuteintegerwsecondintegerwmillisecondsend typeglobal type nvo_datetime from nonvisualobject autoinstantiateend typetype prototypesfunction long setsystemtime(stc_systemtime lpsystemtime) library "kernel32.dll" end prototypesforward prototypespublic function integer of_getdaysinmonth (date ad_date)public function date of_getlastdayinmonth (date ad_date)public function date of_getlastdayinmonth (integer ai_year, integer ai_month)public function date of_getfirstdayinmonth (date ad_date)public function date of_getfirstdayinmonth (integer ai_year, integer ai_month)public function boolean of_isleapyear (date ad_date)public function boolean of_isleapyear (integer ai_year)public function boolean of_lsweekend (date ad_date)public function date of_skipholidays (date ad_date, integer ai_increment)public function date of_getnextworkday (datawindow adw_holidays, string as_columnname, date ad_date)public function date of_getpreviousworkday (datawindow adw_holidays, string as_columnname, date ad_date)public function date of_getpreviousworkday (date ad_date)public function date of_getnextworkday (date ad_date)public function date of_skipholidays (datastore ads_holidays, string as_columnname, date ad_date, integer ai_increment)public function date of_skipholidays (datawindow adw_holidays, string as_columnname, date ad_date, integer ai_increment)public function date of_getnextworkday (datastore ads_holidays, string as_columnname, date ad_date)public function date of_getfirstworkday (datawindow adw_holidays, string as_columnname, date ad_date)public function date of_getfirstworkday (datastore ads_holidays, string as_columnname, date ad_date)public function date of_getpreviousworkday (datastore ads_holidays, string as_columnname, date ad_date)public function date of_getfirstworkday (date ad_date)public function date of_getlastworkday (datastore ads_holidays, string as_columnname, date ad_date)public function date of_getlastworkday (datawindow adw_holidays, string as_columnname, date ad_date)public function date of_getlastworkday (date ad_date)public function integer of_getdaysinmonth ()public function integer of_countdowinmonth (date ad_date, integer ai_dow)public function integer of_countdowinmonth (date ad_date)public function integer of_countworkdays (datawindow adw_holidays, string as_columnname, date ad_startdate, date ad_enddate)public function date of_getfirstdayinweek (date ad_date)public function date of_getlastdayinweek (date ad_date)public function date of_getfirstdayinmonth ()public function date of_getlastdayinmonth ()public function date of_getfirstworkday ()public function date of_getlastworkday ()public function date of_getfirstdayinweek ()public function date of_getlastdayinweek ()public function date of_getnextworkday ()public function date of_getpreviousworkday ()public function integer of_countholidays (datawindow adw_holidays, string as_columnname, date ad_startdate, date ad_enddate)public function integer of_countholidays (date ad_startdate, date ad_enddate)public function integer of_countholidays (datastore ads_holidays, string as_columnname, date ad_startdate, date ad_enddate)public function integer of_countworkdays (datastore ads_holidays, string as_columnname, date ad_startdate, date ad_enddate)public function integer of_countworkdays (date ad_startdate, date ad_enddate)public function integer of_getage (date ad_brithday, date ad_date)public function long of_yearsafter (date ad_start, date ad_end)public function long of_monthsafter (date ad_start, date ad_end)public function long of_weeksafter (date ad_start, date ad_end)public function long of_secondsafter (datetime adtm_start, datetime adtm_end)public function long of_millisecsafter (time atm_start, time atm_end)public function date of_relativemonth (date ad_source, integer al_month)public function datetime of_relativedatetime (datetime adtm_start, integer al_offset)public function integer of_getquarter (date ad_source)public function integer of_getquarter ()public function date of_getfirstdayinquarter (date ad_date)public function date of_getfirstdayinquarter ()public function date of_getlastdayinquarter (date ad_date)public function date of_getlastdayinquarter ()public function long of_countweeksinyear (date ad_source)public function integer of_getdayinweek (date ad_source)public function date of_getfirstdayinyear (date ad_date)public function date of_getfirstdayinyear ()public function date of_getfirstdayinyear (integer ai_year)public function date of_getlastdayinyear (date ad_date)public function date of_getlastdayinyear ()public function date of_getlastdayinyear (integer ai_year)public function integer of_countyeardays (date ad_date)public function integer of_countyeardays ()public function integer of_countyeardays (integer ai_year)public function string of_getconstellation (date ad_date)public function string of_getgenus (integer ai_year)public function string of_convertdayoflunar (date ad_date)public function datetime of_relativedatetime (datetime ad_datetime, long al_number, string as_kind)public function string of_gettgdz (integer ai_year)public function string of_gettgdz (date ad_date)public function string of_gettgdz ()public function boolean of_isleapyear ()public function string of_getgenus (date ad_date)public function string of_getgenus ()public function integer of_countdowinmonth ()public function integer of_getage (date ad_brithday)public function integer of_countdowinmonth (integer ai_dow)public function long of_countweeksinyear ()public function boolean of_setsystemtime (datetime adt_datetime)end prototypespublic function integer of_getdaysinmonth (date ad_date);/*函數(shù)功能:獲取指定日期所在月份的天數(shù) 返回值:integer 指定日期所在月份的天數(shù) 參數(shù):ad_date date 日期*/return integer(28+integer(mid('3'+string(abs(sign(mod(sign(mod(abs(year(ad_date)),4))+sign(mod(abs(year(ad_date)),100))+sign(mod(abs(year(ad_date)),400)),2)) -1))+'3232332323',month(ad_date),1)))end functionpublic function date of_getlastdayinmonth (date ad_date);/*函數(shù)功能:獲取指定日期所在月份的最后一天 返回值:date 指定日期所在月份的最后一天 參數(shù):ad_date date 日期*/return date(year(ad_date),month(ad_date),integer(28+integer(mid('3'+string(abs(sign(mod(sign(mod(abs(year(ad_date)),4))+sign(mod(abs(year(ad_date)),100))+sign(mod(abs(year(ad_date)),400)),2)) -1))+'3232332323',month(ad_date),1))))end functionpublic function date of_getlastdayinmonth (integer ai_year, integer ai_month);/*函數(shù)功能:獲取指定年份,月份的最后一天 返回值:date 指定年份,月份的最后一天 參數(shù):integer ai_year 年份 integer ai_month 月份*/date ld_dateld_date=date(ai_year,ai_month,1)return date(year(ld_date),month(ld_date),integer(28+integer(mid('3'+string(abs(sign(mod(sign(mod(abs(year(ld_date)),4))+sign(mod(abs(year(ld_date)),100))+sign(mod(abs(year(ld_date)),400)),2)) -1))+'3232332323',month(ld_date),1))))end functionpublic function date of_getfirstdayinmonth (date ad_date);/*函數(shù)功能:獲取指定日期所在月份的第一天 返回值:date 指定日期所在月份的第一天 參數(shù):date ad_date 日期 */return date(year(ad_date),month(ad_date),1)end functionpublic function date of_getfirstdayinmonth (integer ai_year, integer ai_month);/*函數(shù)功能:獲取指定年份,月份的第一天 返回值:date 指定年份,月份的第一天 參數(shù):integer ai_year 年份 integer ai_month 月份*/return date(ai_year,ai_month,1)end functionpublic function boolean of_isleapyear (date ad_date);/*函數(shù)功能:獲取指定日期所在年份是否為閏年 返回值:boolean 指定日期所在年份是否為閏年,true為是閏年,false為平年 參數(shù):ad_date date 日期*/integer li_yearli_year=year(ad_date)return abs(sign(mod(sign(mod(abs(li_year),4))+sign(mod(abs(li_year),100))+sign(mod(abs(li_year),400)),2)) -1)=1end functionpublic function boolean of_isleapyear (integer ai_year);/*函數(shù)功能:獲取指定年份是否為閏年 返回值:boolean 指定年份是否為閏年,true為是閏年,false為平年 參數(shù):ai_year integer 年份*/return abs(sign(mod(sign(mod(abs(ai_year),4))+sign(mod(abs(ai_year),100))+sign(mod(abs(ai_year),400)),2)) -1)=1end functionpublic function boolean of_lsweekend (date ad_date);/*函數(shù)功能:獲取指定日期是否為周末 返回值:date 指定日期是否為周末 參數(shù):ad_date date 日期*/string ls_weekls_week=dayname(ad_date)choose case dayname(ad_date)case "saturday","sunday"return truecase elsereturn falseend chooseend functionpublic function date of_skipholidays (date ad_date, integer ai_increment);/*函數(shù)功能:獲取指定日期跳過周末的下一個日期 返回值:date 返回指定的指定日期跳過周末的下一個日期 參數(shù):ad_date date 日期 ai_increment integer 指定的跳過天數(shù) */date ld_dateld_date=ad_datedo while of_lsweekend(ld_date)=trueld_date=relativedate ( ld_date, ai_increment )loopreturn ld_dateend functionpublic function date of_getnextworkday (datawindow adw_holidays, string as_columnname, date ad_date);/*函數(shù)功能:獲取指定日期跳過周末和節(jié)假日的下一個工作日 返回值:date 返回指定的指定日期跳過周末的下一個工作日 參數(shù):adw_holidays datawindow存儲指定節(jié)假日的數(shù)據(jù)窗口 as_columnname string 數(shù)據(jù)窗口中存儲節(jié)假日的列名 ad_date date 日期 */return of_skipholidays(adw_holidays,as_columnname,relativedate (ad_date,1),1)end functionpublic function date of_getpreviousworkday (datawindow adw_holidays, string as_columnname, date ad_date);/*函數(shù)功能:獲取指定日期跳過周末和節(jié)假日的上一個工作日 返回值:date 返回指定的指定日期跳過周末的上一個工作日 參數(shù):adw_holidays datawindow存儲指定節(jié)假日的數(shù)據(jù)窗口 as_columnname string 數(shù)據(jù)窗口中存儲節(jié)假日的列名 ad_date date 日期 */return of_skipholidays(adw_holidays,as_columnname,relativedate (ad_date,-1),-1)end functionpublic function date of_getpreviousworkday (date ad_date);/*函數(shù)功能:獲取指定日期跳過周末的上一個工作日 返回值:date 返回指定的指定日期跳過周末的上一個工作日 參數(shù): ad_date date 日期 */return of_skipholidays(relativedate (ad_date,-1),-1)end functionpublic function date of_getnextworkday (date ad_date);/*函數(shù)功能:獲取指定日期跳過周末的下一個工作日 返回值:date 返回指定的指定日期跳過周末的下一個工作日 參數(shù): ad_date date 日期 */return of_skipholidays(relativedate (ad_date,1),1)end functionpublic function date of_skipholidays (datastore ads_holidays, string as_columnname, date ad_date, integer ai_increment);/*函數(shù)功能:獲取指定日期跳過周末和節(jié)假日的下一個日期 返回值:date 返回指定的指定日期跳過周末和節(jié)假日的下一個日期 參數(shù):adw_holidays datastore存儲指定節(jié)假日的數(shù)據(jù)存儲對象 as_columnname string 數(shù)據(jù)窗口中存儲節(jié)假日的列名 ad_date date 日期 ai_increment integer 指定的跳過天數(shù) */date ld_dateld_date=ad_datedo while of_lsweekend(ld_date)=true or ads_holidays.find("string("+as_columnname+",'yyyy-mm-dd')"+"='"+string(ld_date,"yyyy-mm-dd")+"'",1,ads_holidays.rowcount())<>0ld_date=relativedate ( ld_date, ai_increment )loopreturn ld_dateend functionpublic function date of_skipholidays (datawindow adw_holidays, string as_columnname, date ad_date, integer ai_increment);/*函數(shù)功能:獲取指定日期跳過周末和節(jié)假日的下一個日期 返回值:date 返回指定的指定日期跳過周末和節(jié)假日的下一個日期 參數(shù):adw_holidays datawindow存儲指定節(jié)假日的數(shù)據(jù)窗口 as_columnname string 數(shù)據(jù)窗口中存儲節(jié)假日的列名 ad_date date 日期 ai_increment integer 指定的跳過天數(shù) */date ld_dateld_date=ad_datedo while of_lsweekend(ld_date)=true or adw_holidays.find("string("+as_columnname+",'yyyy-mm-dd')"+"='"+string(ld_date,"yyyy-mm-dd")+"'",1,adw_holidays.rowcount())<>0ld_date=relativedate ( ld_date, ai_increment )loopreturn ld_dateend functionpublic function date of_getnextworkday (datastore ads_holidays, string as_columnname, date ad_date);/*函數(shù)功能:獲取指定日期跳過周末和節(jié)假日的下一個工作日 返回值:date 返回指定的指定日期跳過周末的下一個工作日 參數(shù):ads_holidays datastore存儲指定節(jié)假日的數(shù)據(jù)存儲對象 as_columnname string 數(shù)據(jù)窗口中存儲節(jié)假日的列名 ad_date date 日期 */return of_skipholidays(ads_holidays,as_columnname,relativedate (ad_date,1),1)end functionpublic function date of_getfirstworkday (datawindow adw_holidays, string as_columnname, date ad_date);/*函數(shù)功能:獲取指定日期所在月的第一個工作日 返回值:date 返回指定日期所在月的第一個工作日 參數(shù):adw_holidays datawindow存儲指定節(jié)假日的數(shù)據(jù)存儲對象 as_columnname string 數(shù)據(jù)窗口中存儲節(jié)假日的列名 ad_date date 日期 */date d_tempd_temp=date(year(ad_date),month(ad_date),1)return of_skipholidays(adw_holidays,as_columnname,d_temp,1)end functionpublic function date of_getfirstworkday (datastore ads_holidays, string as_columnname, date ad_date);/*函數(shù)功能:獲取指定日期所在月的第一個工作日 返回值:date 返回指定日期所在月的第一個工作日 參數(shù):ads_holidays datastore存儲指定節(jié)假日的數(shù)據(jù)存儲對象 as_columnname string 數(shù)據(jù)窗口中存儲節(jié)假日的列名 ad_date date 日期 */date d_tempd_temp=date(year(ad_date),month(ad_date),1)return of_skipholidays(ads_holidays,as_columnname,d_temp,1)end functionpublic function date of_getpreviousworkday (datastore ads_holidays, string as_columnname, date ad_date);/*函數(shù)功能:獲取指定日期跳過周末和節(jié)假日的上一個工作日 返回值:date 返回指定的指定日期跳過周末的上一個工作日 參數(shù):ads_holidays datastore存儲指定節(jié)假日的數(shù)據(jù)存儲對象 as_columnname string 數(shù)據(jù)窗口中存儲節(jié)假日的列名 ad_date date 日期 */return of_skipholidays(ads_holidays,as_columnname,relativedate (ad_date,-1),-1)end functionpublic function date of_getfirstworkday (date ad_date);/*函數(shù)功能:獲取指定日期所在月的第一個工作日 返回值:date 返回指定日期所在月的第一個工作日 參數(shù): ad_date date 日期 */date d_tempd_temp=date(year(ad_date),month(ad_date),1)return of_skipholidays(d_temp,1)end functionpublic function date of_getlastworkday (datastore ads_holidays, string as_columnname, date ad_date);/*函數(shù)功能:獲取指定日期所在月的最后一個工作日 返回值:date 返回指定日期所在月的最后一個工作日 參數(shù):ads_holidays datastore存儲指定節(jié)假日的數(shù)據(jù)存儲對象 as_columnname string 數(shù)據(jù)窗口中存儲節(jié)假日的列名 ad_date date 日期 */date d_tempd_temp=of_getlastdayinmonth(ad_date)return of_skipholidays(ads_holidays,as_columnname,d_temp,-1)end functionpublic function date of_getlastworkday (datawindow adw_holidays, string as_columnname, date ad_date);/*函數(shù)功能:獲取指定日期所在月的最后一個工作日 返回值:date 返回指定日期所在月的最后一個工作日 參數(shù):adw_holidays datawindow存儲指定節(jié)假日的數(shù)據(jù)窗口 as_columnname string 數(shù)據(jù)窗口中存儲節(jié)假日的列名 ad_date date 日期 */date d_tempd_temp=of_getlastdayinmonth(ad_date)return of_skipholidays(adw_holidays,as_columnname,d_temp,-1)end functionpublic function date of_getlastworkday (date ad_date);/*函數(shù)功能:獲取指定日期所在月的最后一個工作日 返回值:date 返回指定日期所在月的最后一個工作日 參數(shù): ad_date date 日期 */date d_tempd_temp=of_getlastdayinmonth(ad_date)return of_skipholidays(d_temp,-1)end functionpublic function integer of_getdaysinmonth ();/*函數(shù)功能:獲取指定日期所在月份的天數(shù) 返回值:integer 指定日期所在月份的天數(shù) 參數(shù):ad_date date 日期*/return integer(28+integer(mid('3'+string(abs(sign(mod(sign(mod(abs(year(today())),4))+sign(mod(abs(year(today())),100))+sign(mod(abs(year(today())),400)),2)) -1))+'3232332323',month(today()),1)))end functionpublic function integer of_countdowinmonth (date ad_date, integer ai_dow);/*函數(shù)功能:獲取指定日期所在月份的指定星期幾的天數(shù) 返回值:integer 指定日期所在月份的指定星期幾的天數(shù) 參數(shù):ad_date date 日期 ai_dow integer 指定的星期幾 1代表星期天......7代表星期六*/date d_firstinteger intcount,intmonthif(ai_dow<1 or ai_dow>7) then ai_dow=daynumber(ad_date)end ifintmonth=month(ad_date)d_first=date(year(ad_date),month(ad_date),1)do while daynumber(d_first)<>ai_dowd_first=relativedate(d_first,1)loopintcount=0do while month(d_first)=intmonthintcount=intcount+1d_first=relativedate(d_first,7)loopreturn intcountend functionpublic function integer of_countdowinmonth (date ad_date);/*函數(shù)功能:獲取指定日期所在月份的星期一的天數(shù) 返回值:integer 指定日期所在月份的星期一的天數(shù) 參數(shù):ad_date date 日期*/ return of_countdowinmonth(ad_date,2)end functionpublic function integer of_countworkdays (datawindow adw_holidays, string as_columnname, date ad_startdate, date ad_enddate);/*函數(shù)功能:獲取指定日期之間的工作日天數(shù) 返回值:工作日天數(shù) 參數(shù):adw_holidays datawindow存儲指定節(jié)假日的數(shù)據(jù)窗口 as_columnname string 數(shù)據(jù)窗口中存儲節(jié)假日的列名 ad_startdate date 開始日期 ad_enddate date 結(jié)束日期 */integer intdays,li_returndate d_tempinteger intsubstractif ad_enddate<ad_startdate thend_temp=ad_startdatead_enddate=ad_startdatead_startdate=d_tempend ifad_startdate=of_skipholidays(adw_holidays,as_columnname,ad_startdate,1)ad_enddate=of_skipholidays(adw_holidays,as_columnname,ad_enddate,-1)if ad_startdate>ad_enddate thenli_return=0elseintdays=daysafter (ad_startdate, ad_enddate )+1intsubstract=intsubstract+of_countholidays(adw_holidays,as_columnname,ad_startdate,ad_enddate)end ifli_return=intdays - intsubstractreturn li_returnend functionpublic function date of_getfirstdayinweek (date ad_date);/*函數(shù)功能:獲取指定日期所在周的第一天 返回值:date 返回指定日期所在周的第一天 參數(shù):ad_date date 日期 */date ld_returnld_return=relativedate (ad_date, 1 - daynumber(ad_date))return ld_returnend functionpublic function date of_getlastdayinweek (date ad_date);/*函數(shù)功能:獲取指定日期所在周的最后一天 返回值:date 返回指定日期所在周的最后一天 參數(shù):ad_date date 日期 */date ld_returnld_return=relativedate (ad_date, 7 - daynumber(ad_date))return ld_returnend functionpublic function date of_getfirstdayinmonth ();/*函數(shù)功能:獲取當前日期所在月份的第一天 返回值:date 當前日期所在月份的第一天 參數(shù):date ad_date 日期 */return date(year(today()),month(today()),1)end functionpublic function date of_getlastdayinmonth ();/*函數(shù)功能:獲取當前日期所在月份的最后一天 返回值:date 當前日期所在月份的最后一天*/return date(year(today()),month(today()),integer(28+integer(mid('3'+string(abs(sign(mod(sign(mod(abs(year(today())),4))+sign(mod(abs(year(today())),100))+sign(mod(abs(year(today())),400)),2)) -1))+'3232332323',month(today()),1))))end functionpublic function date of_getfirstworkday ();/*函數(shù)功能:獲取當前日期所在月的第一個工作日 返回值:date 返回當前日期所在月的第一個工作日 */date d_tempd_temp=date(year(today()),month(today()),1)return of_skipholidays(d_temp,1)end functionpublic function date of_getlastworkday ();/*函數(shù)功能:獲取當前日期所在月的最后一個工作日 返回值:date 返回當前日期所在月的最后一個工作日 */ date d_tempd_temp=of_getlastdayinmonth(today())return of_skipholidays(d_temp,-1)end functionpublic function date of_getfirstdayinweek ();/*函數(shù)功能:獲取當前日期所在周的第一天 返回值:date 返回當前日期所在周的第一天 參數(shù):ad_date date 日期 */date ld_returnld_return=relativedate (today(), 1 - daynumber(today()))return ld_returnend functionpublic function date of_getlastdayinweek ();/*函數(shù)功能:獲取指定日期所在周的最后一天 返回值:date 返回指定日期所在周的最后一天*/date ld_returnld_return=relativedate (today(), 7 - daynumber(today()))return ld_returnend functionpublic function date of_getnextworkday ();/*函數(shù)功能:獲取當前日期跳過周末的下一個工作日 返回值:date 返回當前的指定日期跳過周末的下一個工作日 */return of_skipholidays(relativedate (today(),1),1)end functionpublic function date of_getpreviousworkday ();/*函數(shù)功能:獲取當前日期跳過周末的上一個工作日 返回值:date 返回當前日期跳過周末的上一個工作日 */return of_skipholidays(relativedate (today(),-1),-1)end functionpublic function integer of_countholidays (datawindow adw_holidays, string as_columnname, date ad_startdate, date ad_enddate);/*函數(shù)功能:獲取指定日期之間的節(jié)假日天數(shù) 返回值:節(jié)假日天數(shù) 參數(shù):adw_holidays datawindow存儲指定節(jié)假日的數(shù)據(jù)窗口 as_columnname string 數(shù)據(jù)窗口中存儲節(jié)假日的列名 ad_startdate date 開始日期 ad_enddate date 結(jié)束日期 */ integer li_returndate ld_dateld_date=ad_startdatedo while ld_date<=ad_enddateif of_lsweekend(ld_date)=true or adw_holidays.find("string("+as_columnname+",'yyyy-mm-dd')"+"='"+string(ld_date,"yyyy-mm-dd")+"'",1,adw_holidays.rowcount())=0 thenli_return++end ifld_date=relativedate(ld_date,1)loopreturn li_returnend functionpublic function integer of_countholidays (date ad_startdate, date ad_enddate);/*函數(shù)功能:獲取指定日期之間的節(jié)假日天數(shù) 返回值:節(jié)假日天數(shù) 參數(shù):ad_startdate date 開始日期 ad_enddate date 結(jié)束日期 */ integer li_returndate ld_dateld_date=ad_startdatedo while ld_date<=ad_enddateif of_lsweekend(ld_date)=true thenli_return++end ifld_date=relativedate(ld_date,1)loopreturn li_returnend functionpublic function integer of_countholidays (datastore ads_holidays, string as_columnname, date ad_startdate, date ad_enddate);/*函數(shù)功能:獲取指定日期之間的節(jié)假日天數(shù) 返回值:節(jié)假日天數(shù) 參數(shù):ads_holidays datastore存儲指定節(jié)假日的數(shù)據(jù)存儲對象 as_columnname string 數(shù)據(jù)窗口中存儲節(jié)假日的列名 ad_startdate date 開始日期 ad_enddate date 結(jié)束日期 */ integer li_returndate ld_dateld_date=ad_startdatedo while ld_date<=ad_enddateif of_lsweekend(ld_date)=true or ads_holidays.find("string("+as_columnname+",'yyyy-mm-dd')"+"='"+string(ld_date,"yyyy-mm-dd")+"'",1,ads_holidays.rowcount())=0 thenli_return++end ifld_date=relativedate(ld_date,1)loopreturn li_returnend functionpublic function integer of_countworkdays (datastore ads_holidays, string as_columnname, date ad_startdate, date ad_enddate);/*函數(shù)功能:獲取指定日期之間的工作日天數(shù) 返回值:工作日天數(shù) 參數(shù):ads_holidays datastroe存儲指定節(jié)假日的數(shù)據(jù)存儲對象 as_columnname string 數(shù)據(jù)窗口中存儲節(jié)假日的列名 ad_startdate date 開始日期 ad_enddate date 結(jié)束日期 */integer intdays,li_returndate d_tempinteger intsubstractif ad_enddate<ad_startdate thend_temp=ad_startdatead_enddate=ad_startdatead_startdate=d_tempend ifad_startdate=of_skipholidays(ads_holidays,as_columnname,ad_startdate,1)ad_enddate=of_skipholidays(ads_holidays,as_columnname,ad_enddate,-1)if ad_startdate>ad_enddate thenli_return=0elseintdays=daysafter (ad_startdate, ad_enddate )+1intsubstract=intsubstract+of_countholidays(ads_holidays,as_columnname,ad_startdate,ad_enddate)end ifli_return=intdays - intsubstractreturn li_returnend functionpublic function integer of_countworkdays (date ad_startdate, date ad_enddate);/*函數(shù)功能:獲取指定日期之間的工作日天數(shù) 返回值:工作日天數(shù) 參數(shù):ad_startdate date 開始日期 ad_enddate date 結(jié)束日期 */integer intdays,li_returndate d_tempinteger intsubstractif ad_enddate<ad_startdate thend_temp=ad_startdatead_enddate=ad_startdatead_startdate=d_tempend ifad_startdate=of_skipholidays(ad_startdate,1)ad_enddate=of_skipholidays(ad_enddate,-1)if ad_startdate>ad_enddate thenli_return=0elseintdays=daysafter (ad_startdate, ad_enddate )+1intsubstract=intsubstract+of_countholidays(ad_startdate,ad_enddate)end ifli_return=intdays - intsubstractreturn li_returnend functionpublic function integer of_getage (date ad_brithday, date ad_date);/*函數(shù)作用:獲取指定生日到指定日期的年紀 函數(shù)返回值:integer 指定生日到指定日期的年紀 參數(shù):date ad_brithday 出生日期 date ad_date 指定日期*/integer li_agedate ld_tempif ad_brithday>ad_date thenld_temp=ad_brithdayad_brithday=ad_datead_date=ld_tempend ifli_age=of_yearsafter(ad_brithday,ad_date)if ad_date<date(year(ad_date),month(ad_brithday),day(ad_brithday)) thenli_age=li_age - 1end ifreturn li_ageend functionpublic function long of_yearsafter (date ad_start, date ad_end);/*函數(shù)用途:獲取指定日期之間的相差年度 返回值:long 相差年度 參數(shù):date ad_start 開始日期 date ad_end 結(jié)束日期*/date ld_tempint li_year, li_multdouble adb_start, adb_endif isnull(ad_start) or isnull(ad_end) thenlong ll_nullsetnull (ll_null)return ll_nullend ifif ad_start > ad_end thenld_temp = ad_startad_start = ad_endad_end = ld_templi_mult = -1elseli_mult = 1end ifli_year = year(ad_end) - year(ad_start)adb_start = month(ad_start)adb_start = adb_start + day(ad_start) / 100adb_end = month(ad_end)adb_end = adb_end + day(ad_end) / 100if adb_start > adb_end thenli_year --end ifreturn li_year * li_multend functionpublic function long of_monthsafter (date ad_start, date ad_end);/* 描述: 兩個日期之間的月份間隔返回:兩個日期之間的月份間隔參數(shù):date ad_start 開始日期 date ad_end結(jié)束日期 */ date ld_tempinteger li_monthintegerli_multif isnull(ad_start) or isnull(ad_end) thenlong ll_nullsetnull(ll_null)return ll_nullend ifif ad_start > ad_end thenld_temp = ad_startad_start = ad_endad_end = ld_templi_mult = -1elseli_mult = 1end ifli_month = (year(ad_end) - year(ad_start) ) * 12li_month = li_month + month(ad_end) - month(ad_start)if day(ad_start) > day(ad_end) then li_month --end ifreturn li_month * li_multend functionpublic function long of_weeksafter (date ad_start, date ad_end);/*函數(shù)用途:獲取指定日期之間的相差星期數(shù) 返回值:long 相差星期數(shù) 參數(shù):date ad_start 開始日期 date ad_end 結(jié)束日期*/if isnull(ad_start) or isnull(ad_end) thenlong ll_nullsetnull(ll_null)return ll_nullend ifreturn daysafter(ad_start,ad_end) /7end functionpublic function long of_secondsafter (datetime adtm_start, datetime adtm_end);/*函數(shù)用途:獲取指定日期之間的相差分鐘數(shù) 返回值:long 相差分鐘數(shù) 參數(shù):datetime adtm_start 開始時間 datetime adtm_end 結(jié)束時間*/long ll_total_seconds, ll_day_adjustdate ld_sdate, ld_edatetime lt_stime, lt_etimeif isnull(adtm_start) or isnull(adtm_end) thenlong ll_nullsetnull(ll_null)return ll_nullend ifld_sdate = date(adtm_start)ld_edate = date(adtm_end)lt_stime = time(adtm_start)lt_etime = time(adtm_end)if ld_sdate = ld_edate then ll_total_seconds = secondsafter(lt_stime,lt_etime)elseif ld_sdate < ld_edate thenll_total_seconds = secondsafter(lt_stime,time('23:59:59'))ll_day_adjust = daysafter(ld_sdate,ld_edate) -1if ll_day_adjust > 0 then ll_total_seconds = ll_total_seconds + 86400 * ll_day_adjustll_total_seconds = ll_total_seconds + secondsafter(time('00:00:00'),lt_etime) +1else ll_total_seconds = secondsafter(lt_stime,time('00:00:00'))ll_day_adjust = daysafter(ld_sdate,ld_edate) +1if ll_day_adjust < 0 then ll_total_seconds = ll_total_seconds + 86400 * ll_day_adjustll_total_seconds = ll_total_seconds + secondsafter(time('23:59:59'),lt_etime) -1end ifreturn ll_total_secondsend functionpublic function long of_millisecsafter (time atm_start, time atm_end);/*函數(shù)用途:獲取指定時間之間的相差秒數(shù) 返回值:long 相差相差秒數(shù) 參數(shù):time atm_start 開始時間 time atm_end 結(jié)束時間*/long ll_start, ll_endlong ll_tempif isnull(atm_start) or isnull(atm_end) thenlong ll_nullsetnull(ll_null)return ll_nullend ifll_start = long (string (atm_start,"fff"))ll_temp = second(atm_start) * 1000ll_start = ll_start + ll_templl_temp = minute(atm_start) * 60000ll_start = ll_start + ll_templl_temp = hour(atm_start) * 3600000ll_start = ll_start + ll_templl_end = long (string (atm_end,"fff"))ll_temp = second(atm_end) * 1000ll_end = ll_end + ll_templl_temp = minute(atm_end) * 60000ll_end = ll_end + ll_templl_temp = hour(atm_end) * 3600000ll_end = ll_end + ll_tempreturn ll_end - ll_startend functionpublic function date of_relativemonth (date ad_source, integer al_month);/*函數(shù)功能:返回指定日期相差指定月份后的日期返回值:date 指定日期相差指定月份后的日期參數(shù):date ad_source 初始日期 integer al_month 月數(shù)*/integer li_adjust_months, li_adjust_yearsinteger li_month, li_year, li_dayinteger li_temp_monthif isnull(ad_source) or isnull(al_month) thendate ldt_nullsetnull(ldt_null)return ldt_nullend ifli_adjust_months = mod(al_month, 12)li_adjust_years = (al_month / 12)li_temp_month = month(ad_source) + li_adjust_monthsif li_temp_month > 12 thenli_month = li_temp_month - 12li_adjust_years ++elseif li_temp_month <= 0 thenli_month = li_temp_month + 12li_adjust_years --elseli_month = li_temp_monthend ifli_year = year(ad_source) + li_adjust_yearsli_day = day(ad_source)do while li_day > 0li_day --loopdateld_ret ld_ret = date(li_year, li_month, li_day) return ld_retend functionpublic function datetime of_relativedatetime (datetime adtm_start, integer al_offset);/*函數(shù)功能:返回指定時間相差指定秒數(shù)后的時間返回值:datetime 指定時間相差指定秒數(shù)后的時間參數(shù):datetime adtm_start 初始時間 integer al_month 秒數(shù)*/datetime ldt_nulldate ld_sdatetime lt_stimelong ll_date_adjustlong ll_time_adjust, ll_time_testif isnull(adtm_start) or isnull(al_offset) thensetnull(ldt_null)return ldt_nullend ifld_sdate = date(adtm_start)lt_stime = time(adtm_start)ll_date_adjust = al_offset / 86400ll_time_adjust = mod(al_offset, 86400)ld_sdate = relativedate(ld_sdate, ll_date_adjust)if ll_time_adjust > 0 thenll_time_test = secondsafter(lt_stime,time('23:59:59'))if ll_time_test < ll_time_adjust thenld_sdate = relativedate(ld_sdate,1)ll_time_adjust = ll_time_adjust - ll_time_test -1lt_stime = time('00:00:00')end iflt_stime = relativetime(lt_stime, ll_time_adjust)elseif ll_time_adjust < 0 thenll_time_test = secondsafter(lt_stime,time('00:00:00'))if ll_time_test > ll_time_adjust thenld_sdate = relativedate(ld_sdate,-1)ll_time_adjust = ll_time_adjust - ll_time_test +1lt_stime = time('23:59:59')end iflt_stime = relativetime(lt_stime, ll_time_adjust)end ifreturn(datetime(ld_sdate,lt_stime))end functionpublic function integer of_getquarter (date ad_source);/*函數(shù)功能:獲得指定日期所在的季度返回值:integer 指定日期所在的季度參數(shù):date ad_source日期*/if isnull(ad_source) thenlong ll_nullsetnull(ll_null)return ll_nullend ifinteger li_month , li_quarterli_month = month(ad_source)li_quarter = (li_month -1)/3return li_quarterend functionpublic function integer of_getquarter ();/*函數(shù)功能:獲得當前日期所在的季度返回值:integer 當前日期所在的季度*/integer li_month , li_quarterli_month = month(today())li_quarter = (li_month -1)/3return li_quarterend functionpublic function date of_getfirstdayinquarter (date ad_date);/*函數(shù)用途:獲取指定日期所在的季度的第一天返回值:date 指定日期所在的季度的第一天參數(shù):date ad_date 指定日期*/date ld_returnconstant integer li_monthsinquarter=3ld_return=date(year(ad_date),int((month(ad_date) - 1)/li_monthsinquarter)*li_monthsinquarter+1,1)return ld_returnend functionpublic function date of_getfirstdayinquarter ();/*函數(shù)用途:獲取當前日期所在的季度的第一天返回值:date 當前日期所在的季度的第一天*/date ld_returnconstant integer li_monthsinquarter=3ld_return=date(year(today()),int((month(today()) - 1)/li_monthsinquarter)*li_monthsinquarter+1,1)return ld_returnend functionpublic function date of_getlastdayinquarter (date ad_date);/*函數(shù)用途:獲取指定日期所在的季度的最后一天返回值:date 指定日期所在的季度的最后一天參數(shù):date ad_date 指定日期*/date ld_returnconstant integer li_monthsinquarter=3ld_return=date(year(ad_date),int((month(ad_date) - 1)/li_monthsinquarter)*li_monthsinquarter+(li_monthsinquarter+1),integer(28+integer(mid('3'+string(abs(sign(mod(sign(mod(abs(year(ad_date)),4))+sign(mod(abs(year(ad_date)),100))+sign(mod(abs(year(ad_date)),400)),2)) -1))+'3232332323',month(ad_date),1))))return ld_returnend functionpublic function date of_getlastdayinquarter ();/*函數(shù)用途:獲取當前日期所在的季度的最后一天返回值:date 當前日期所在的季度的最后一天*/date ld_returnconstant integer li_monthsinquarter=3ld_return=date(year(today()),int((month(today()) - 1)/li_monthsinquarter)*li_monthsinquarter+(li_monthsinquarter+1),integer(28+integer(mid('3'+string(abs(sign(mod(sign(mod(abs(year(today())),4))+sign(mod(abs(year(today())),100))+sign(mod(abs(year(today())),400)),2)) -1))+'3232332323',month(today()),1))))return ld_returnend functionpublic function long of_countweeksinyear (date ad_source);/*函數(shù)用途:獲取指定日期所在年份的星期數(shù)返回值:long 返回日期所在年份的星期數(shù)參數(shù):date ad_source 指定日期*/dateld_first_ofyearintegerli_weeknumberintegerli_leftover_daysif isnull(ad_source) thenlong ll_nullsetnull(ll_null)return ll_nullend ifld_first_ofyear = date(year(ad_source), 1, 1)li_weeknumber = of_weeksafter (ld_first_ofyear, ad_source) + 1 li_leftover_days = mod(daysafter (ld_first_ofyear, ad_source), 7)if (of_getdayinweek(ld_first_ofyear) + li_leftover_days) >= 8 thenli_weeknumber ++end ifreturn li_weeknumberend functionpublic function integer of_getdayinweek (date ad_source);// 描述: 決定日期是星期幾,以星期天作為一個星期的第一天// 參數(shù)://[value] date ad_source<描述>// 返回:(integer) //1 - if the day is sunday.//2 - if the day is monday//3 - if the day is tuesday.//4 - if the day is wednesday.//5 - if the day is thursday.//6 - if the day is friday.//7 - if the day is saturday.//if any argument's value is null, function returns null.//if isnull(ad_source) thenlong ll_nullsetnull(ll_null)return ll_nullend ifreturn daynumber (ad_source)end functionpublic function date of_getfirstdayinyear (date ad_date);/*函數(shù)功能:獲取指定日期所在年份的第一天 返回值:date 指定日期所在年份的第一天 參數(shù):date ad_date 日期 */return date(year(ad_date),1,1)end functionpublic function date of_getfirstdayinyear ();/*函數(shù)功能:獲取當前日期所在年份的第一天 返回值:date 當前日期所在年份的第一天 參數(shù):date ad_date 日期 */return date(year(today()),1,1)end functionpublic function date of_getfirstdayinyear (integer ai_year);/*函數(shù)功能:獲取指定年份的第一天 返回值:date 指定年份的第一天 參數(shù):date ad_date 日期 */return date(ai_year,1,1)end functionpublic function date of_getlastdayinyear (date ad_date);/*函數(shù)功能:獲取指定日期所在年份的最后一天 返回值:date 指定日期所在年份的最后一天 參數(shù):date ad_date 日期 */return date(year(ad_date),12,31)end functionpublic function date of_getlastdayinyear ();/*函數(shù)功能:獲取當前日期所在年份的最后一天 返回值:date 當前日期所在年份的最后一天 參數(shù):date ad_date 日期 */return date(year(today()),12,31)end functionpublic function date of_getlastdayinyear (integer ai_year);/*函數(shù)功能:獲取指定日期所在年份的最后一天 返回值:date 指定日期所在年份的最后一天 參數(shù):integer ai_year 年份 */return date(ai_year,12,31)end functionpublic function integer of_countyeardays (date ad_date);/*函數(shù)用途:獲取指定日期所在年份的天數(shù)函數(shù)返回值:integer 天數(shù)參數(shù):date ad_date 日期*/return daysafter(of_getfirstdayinyear(ad_date),of_getlastdayinyear(ad_date))end functionpublic function integer of_countyeardays ();/*函數(shù)用途:獲取當前日期所在年份的天數(shù)函數(shù)返回值:integer 天數(shù)*/return daysafter(of_getfirstdayinyear(),of_getlastdayinyear())end functionpublic function integer of_countyeardays (integer ai_year);/*函數(shù)用途:獲取指定年份的天數(shù)函數(shù)返回值:integer 天數(shù)參數(shù):integer ai_year 年份*/return daysafter(of_getfirstdayinyear(ai_year),of_getlastdayinyear(ai_year))end functionpublic function string of_getconstellation (date ad_date);/*函數(shù)用途:返回指定日期所在星座返回值:string 指定日期所在星座參數(shù):date ad_date 指定日期*/return mid("摩羯水瓶雙魚白羊金牛雙子巨蟹獅子處女天秤天蝎射手摩羯",(month(ad_date)+sign(sign(day(ad_date) -(19+integer(mid('102123444423',month(ad_date),1))))+1))*4 -3,4)+'座'end functionpublic function string of_getgenus (integer ai_year);/*函數(shù)功能:獲取指定年份的生肖 返回值:string 返回指定的年份的生肖 參數(shù):ai_year integer 年份*/string ls_returnsetnull(ls_return)if ai_year <1900 then return ls_returnls_return=mid(fill('鼠牛虎兔龍蛇馬羊猴雞狗豬',48),(mod(ai_year -1900,12)+13)*2 -1,2)return ls_returnend functionpublic function string of_convertdayoflunar (date ad_date);string weekname[0 to 7],tiangan[0 to 9],dizhi[0 to 11],shuxiang[0 to 11],dayname[0 to 30],monname[0 to 12]long monthadd[0 to 11],nonglidata[0 to 99]long curtime, curyear, curmonth, curday, curweekdaystring gonglistr, weekdaystr, nonglistr, nonglidaystrlong i, m, n, k, isend, bit,thedateweekname[0] = " * "weekname[1] = "星期日"weekname[2] = "星期一"weekname[3] = "星期二"weekname[4] = "星期三"weekname[5] = "星期四"weekname[6] = "星期五"weekname[7] = "星期六"http://天干名稱tiangan[0] = "甲"tiangan[1] = "乙"tiangan[2] = "丙"tiangan[3] = "丁"tiangan[4] = "戊"tiangan[5] = "己"tiangan[6] = "庚"tiangan[7] = "辛"tiangan[8] = "壬"tiangan[9] = "癸"http://地支名稱dizhi[0] = "子"dizhi[1] = "丑"dizhi[2] = "寅"dizhi[3] = "卯"dizhi[4] = "辰"dizhi[5] = "巳"dizhi[6] = "午"dizhi[7] = "未"dizhi[8] = "申"dizhi[9] = "酉"dizhi[10] = "戌"dizhi[11] = "亥"http://屬相名稱shuxiang[0] = "鼠"shuxiang[1] = "牛"shuxiang[2] = "虎"shuxiang[3] = "兔"shuxiang[4] = "龍"shuxiang[5] = "蛇"shuxiang[6] = "馬"shuxiang[7] = "羊"shuxiang[8] = "猴"shuxiang[9] = "雞"shuxiang[10] = "狗"shuxiang[11] = "豬"http://農(nóng)歷日期名dayname[0] = "*"dayname[1] = "初一"dayname[2] = "初二"dayname[3] = "初三"dayname[4] = "初四"dayname[5] = "初五"dayname[6] = "初六"dayname[7] = "初七"dayname[8] = "初八"dayname[9] = "初九"dayname[10] = "初十"dayname[11] = "十一"dayname[12] = "十二"dayname[13] = "十三"dayname[14] = "十四"dayname[15] = "十五"dayname[16] = "十六"dayname[17] = "十七"dayname[18] = "十八"dayname[19] = "十九"dayname[20] = "二十"dayname[21] = "廿一"dayname[22] = "廿二"dayname[23] = "廿三"dayname[24] = "廿四"dayname[25] = "廿五"dayname[26] = "廿六"dayname[27] = "廿七"dayname[28] = "廿八"dayname[29] = "廿九"dayname[30] = "三十"http://農(nóng)歷月份名monname[0] = "*"monname[1] = "正"monname[2] = "二"monname[3] = "三"monname[4] = "四"monname[5] = "五"monname[6] = "六"monname[7] = "七"monname[8] = "八"monname[9] = "九"monname[10] = "十"monname[11] = "十一"monname[12] = "臘"http://公歷每月前面的天數(shù)monthadd[0] = 0monthadd[1] = 31monthadd[2] = 59monthadd[3] = 90monthadd[4] = 120monthadd[5] = 151monthadd[6] = 181monthadd[7] = 212monthadd[8] = 243monthadd[9] = 273monthadd[10] = 304monthadd[11] = 334//農(nóng)歷數(shù)據(jù)nonglidata[0] = 2635nonglidata[1] = 333387nonglidata[2] = 1701nonglidata[3] = 1748nonglidata[4] = 267701nonglidata[5] = 694nonglidata[6] = 2391nonglidata[7] = 133423nonglidata[8] = 1175nonglidata[9] = 396438nonglidata[10] = 3402nonglidata[11] = 3749nonglidata[12] = 331177nonglidata[13] = 1453nonglidata[14] = 694nonglidata[15] = 201326nonglidata[16] = 2350nonglidata[17] = 465197nonglidata[18] = 3221nonglidata[19] = 3402nonglidata[20] = 400202nonglidata[21] = 2901nonglidata[22] = 1386nonglidata[23] = 267611nonglidata[24] = 605nonglidata[25] = 2349nonglidata[26] = 137515nonglidata[27] = 2709nonglidata[28] = 464533nonglidata[29] = 1738nonglidata[30] = 2901nonglidata[31] = 330421nonglidata[32] = 1242nonglidata[33] = 2651nonglidata[34] = 199255nonglidata[35] = 1323nonglidata[36] = 529706nonglidata[37] = 3733nonglidata[38] = 1706nonglidata[39] = 398762nonglidata[40] = 2741nonglidata[41] = 1206nonglidata[42] = 267438nonglidata[43] = 2647nonglidata[44] = 1318nonglidata[45] = 204070nonglidata[46] = 3477nonglidata[47] = 461653nonglidata[48] = 1386nonglidata[49] = 2413nonglidata[50] = 330077nonglidata[51] = 1197nonglidata[52] = 2637nonglidata[53] = 268877nonglidata[54] = 3365nonglidata[55] = 531109nonglidata[56] = 2900nonglidata[57] = 2922nonglidata[58] = 398042nonglidata[59] = 2395nonglidata[60] = 1179nonglidata[61] = 267415nonglidata[62] = 2635nonglidata[63] = 661067nonglidata[64] = 1701nonglidata[65] = 1748nonglidata[66] = 398772nonglidata[67] = 2742nonglidata[68] = 2391nonglidata[69] = 330031nonglidata[70] = 1175nonglidata[71] = 1611nonglidata[72] = 200010nonglidata[73] = 3749nonglidata[74] = 527717nonglidata[75] = 1452nonglidata[76] = 2742nonglidata[77] = 332397nonglidata[78] = 2350nonglidata[79] = 3222nonglidata[80] = 268949nonglidata[81] = 3402nonglidata[82] = 3493nonglidata[83] = 133973nonglidata[84] = 1386nonglidata[85] = 464219nonglidata[86] = 605nonglidata[87] = 2349nonglidata[88] = 334123nonglidata[89] = 2709nonglidata[90] = 2890nonglidata[91] = 267946nonglidata[92] = 2773nonglidata[93] = 592565nonglidata[94] = 1210nonglidata[95] = 2651nonglidata[96] = 395863nonglidata[97] = 1323nonglidata[98] = 2707nonglidata[99] = 265877curyear = year(ad_date)curmonth = month(ad_date)curday = day(ad_date)gonglistr = string(curyear)+ "年"if (curmonth < 10) then gonglistr = gonglistr + "0" +string(curmonth) + "月"else gonglistr = gonglistr +string(curmonth)+"月"end ifif (curday < 10) then gonglistr = gonglistr+ "0" +string(curday)+"日"else gonglistr = gonglistr+string(curday)+"日"end if//生成當前公歷星期 ==> weekdaystrcurweekday = daynumber(ad_date)weekdaystr = weekname[curweekday]//計算到初始時間1921年2月8日的天數(shù):1921-2-8(正月初一)thedate = (curyear - 1921) * 365 + int((curyear - 1921) / 4) + curday + monthadd[curmonth - 1] - 38if (mod(curyear,4) = 0 and curmonth > 2) then thedate = thedate+1end if//計算農(nóng)歷天干、地支、月、日isend = 0m = 0do if (nonglidata[m] < 4095) then k = 11 else k = 12 end if n = k do if (n < 0) then exit end if //獲取nonglidata(m)的第n個二進制位的值 bit = nonglidata[m] for i = 1 to n step 1 bit = int(bit / 2) next bit = mod(bit,2) if (thedate <= 29 + bit) then isend = 1 exit end if thedate = thedate - 29 - bit n = n - 1loop until 1<>1 if (isend = 1) then exit end if m = m + 1loop until 1<>1curyear = 1921 + mcurmonth = k - n + 1curday = thedateif (k = 12) then if (curmonth = (int(nonglidata[m] / 65536) + 1)) then curmonth = 1 - curmonth elseif (curmonth > (int(nonglidata[m] / 65536) + 1)) then curmonth = curmonth - 1 end ifend if//生成農(nóng)歷天干、地支、屬相 ==> nonglistrnonglistr = "農(nóng)歷" + tiangan[mod(mod(curyear - 4,60),10)] + dizhi[mod(mod(curyear - 4, 60),12)] + "年"nonglistr = nonglistr +"(" + shuxiang[mod(mod(curyear - 4,60),12)] + ")"http://生成農(nóng)歷月、日 ==> nonglidaystrif (curmonth < 1) then nonglidaystr = "閏" + monname[-1 * curmonth]else nonglidaystr = monname[curmonth]end ifnonglidaystr = nonglidaystr + "月"nonglidaystr = nonglidaystr+dayname[curday]return nonglistr+nonglidaystrend functionpublic function datetime of_relativedatetime (datetime ad_datetime, long al_number, string as_kind);//*******************************************************************************////函數(shù)名:f_relativedatatime(datatime ad_datetime, long al_number, string al_kind)//用 途:計算datatime類型的相對日期時間//輸 入:日期時間、相對數(shù)量、單位(天、小時、分、秒)//輸 出:推算后的日期時間//*******************************************************************************//long ll_relativesecond,ll_secondtime lt_timedate ld_dateconstant long onedaysecond = 86400 ld_date = date(ad_datetime)lt_time = time(ad_datetime)choose case as_kindcase "天"return datetime(relativedate(ld_date,al_number),lt_time)case "小時"ll_relativesecond = al_number * 3600case "分"ll_relativesecond = al_number * 60case "秒"ll_relativesecond = al_numberend choosell_second = hour(lt_time) * 3600 + minute(lt_time) * 60 + second(lt_time)ld_date = relativedate(ld_date,integer(ll_relativesecond/onedaysecond))ll_relativesecond -= integer(ll_relativesecond/onedaysecond) * onedaysecondif (ll_second + ll_relativesecond < 0) thenreturn datetime(relativedate(ld_date,-1),relativetime(time("00:00:00:000"),onedaysecond + ll_second + ll_relativesecond))end ifif (ll_second + ll_relativesecond > onedaysecond) thenreturn datetime(relativedate(ld_date,1),relativetime(time("00:00:00:000"),ll_second + ll_relativesecond - onedaysecond))end ifreturn datetime(ld_date,relativetime(lt_time,ll_relativesecond))end functionpublic function string of_gettgdz (integer ai_year);/*函數(shù)功能:獲取指定年份的天干地支 返回值:string 返回指定的年份的天干地支 參數(shù):ai_year integer 年份*/ string ls_return setnull(ls_return) if ai_year <1924 then return ls_return ls_return=mid(fill('甲乙丙丁戊己庚辛壬癸',40),(mod(ai_year -1924,10)+11)*2 -1,2)+mid(fill('子丑寅卯辰巳午未申酉戌亥',48),(mod(ai_year -1924,12)+13)*2 -1,2) return ls_returnend functionpublic function string of_gettgdz (date ad_date);/*函數(shù)功能:獲取指定日期所在年份的天干地支 返回值:string 返回指定日期所在年份的天干地支 參數(shù):ad_date date 年份*/ integer al_year string ls_return setnull(ls_return) al_year=year(ad_date) if al_year <1924 then return ls_return ls_return=mid(fill('甲乙丙丁戊己庚辛壬癸',40),(mod(al_year -1924,10)+11)*2 -1,2)+mid(fill('子丑寅卯辰巳午未申酉戌亥',48),(mod(al_year -1924,12)+13)*2 -1,2) return ls_returnend functionpublic function string of_gettgdz ();/*函數(shù)功能:獲取當前日期所在年份的天干地支 返回值:string 返回當前日期所在年份的天干地支*/ integer al_year string ls_return setnull(ls_return) al_year=year(today()) if al_year <1924 then return ls_return ls_return=mid(fill('甲乙丙丁戊己庚辛壬癸',40),(mod(al_year -1924,10)+11)*2 -1,2)+mid(fill('子丑寅卯辰巳午未申酉戌亥',48),(mod(al_year -1924,12)+13)*2 -1,2) return ls_returnend functionpublic function boolean of_isleapyear ();/*函數(shù)功能:獲取當前日期所在年份是否為閏年 返回值:boolean 當前日期所在年份是否為閏年,true為是閏年,false為平年*/integer li_yearli_year=year(today())return abs(sign(mod(sign(mod(abs(li_year),4))+sign(mod(abs(li_year),100))+sign(mod(abs(li_year),400)),2)) -1)=1end functionpublic function string of_getgenus (date ad_date);/*函數(shù)功能:獲取指定日期所在年份的生肖 返回值:string 返回指定日期所在年份的生肖 參數(shù):ad_date date 日期*/integer li_yearstring ls_returnli_year=year(ad_date)setnull(ls_return)if li_year <1900 then return ls_returnls_return=mid(fill('鼠牛虎兔龍蛇馬羊猴雞狗豬',48),(mod(li_year -1900,12)+13)*2 -1,2)return ls_returnend functionpublic function string of_getgenus ();/*函數(shù)功能:獲取當前日期所在年份的生肖 返回值:string 返回當前日期所在年份的生肖 */integer li_yearstring ls_returnli_year=year(today())setnull(ls_return)if li_year <1900 then return ls_returnls_return=mid(fill('鼠牛虎兔龍蛇馬羊猴雞狗豬',48),(mod(li_year -1900,12)+13)*2 -1,2)return ls_returnend functionpublic function integer of_countdowinmonth ();/*函數(shù)功能:獲取當前日期所在月份的星期一的天數(shù) 返回值:integer 當前日期所在月份的星期一的天數(shù) */ return of_countdowinmonth(today(),2)end functionpublic function integer of_getage (date ad_brithday);/*函數(shù)作用:獲取指定生日到當前日期的年紀 函數(shù)返回值:integer 指定生日到當前日期的年紀 參數(shù):date ad_brithday 出生日期*/integer li_agedate ld_datedate ld_templd_date=today()if ad_brithday>ld_date thenld_temp=ad_brithdayad_brithday=ld_dateld_date=ld_tempend ifli_age=of_yearsafter(ad_brithday,ld_date)if ld_date<date(year(ld_date),month(ad_brithday),day(ad_brithday)) thenli_age=li_age - 1end ifreturn li_ageend functionpublic function integer of_countdowinmonth (integer ai_dow);/*函數(shù)功能:獲取當前日期所在月份的指定星期幾的天數(shù) 返回值:integer 指定當前所在月份的指定星期幾的天數(shù) 參數(shù): ai_dow integer 指定的星期幾 1代表星期天......7代表星期六*/date d_firstinteger intcount,intmonthif(ai_dow<1 or ai_dow>7) then ai_dow=daynumber(today())end ifintmonth=month(today())d_first=date(year(today()),month(today()),1)do while daynumber(d_first)<>ai_dowd_first=relativedate(d_first,1)loopintcount=0do while month(d_first)=intmonthintcount=intcount+1d_first=relativedate(d_first,7)loopreturn intcountend functionpublic function long of_countweeksinyear ();/*函數(shù)用途:獲取當前日期所在年份的星期數(shù)返回值:long 返回當前日期所在年份的星期數(shù)*/dateld_first_ofyearintegerli_weeknumberintegerli_leftover_daysld_first_ofyear = date(year(today()), 1, 1)li_weeknumber = of_weeksafter (ld_first_ofyear, today()) + 1 li_leftover_days = mod(daysafter (ld_first_ofyear, today()), 7)if (of_getdayinweek(ld_first_ofyear) + li_leftover_days) >= 8 thenli_weeknumber ++end ifreturn li_weeknumberend functionpublic function boolean of_setsystemtime (datetime adt_datetime);stc_systemtime lstc_systemtimedate ld_datetime lt_timeld_date=date(adt_datetime)lt_time=time(adt_datetime)lstc_systemtime.wyear=year(ld_date)lstc_systemtime.wmonth=month(ld_date)lstc_systemtime.wday=day(ld_date)lstc_systemtime.wdayofweek=daynumber(ld_date)lstc_systemtime.whour=hour(lt_time)lstc_systemtime.wminute=minute(lt_time)lstc_systemtime.wsecond=minute(lt_time)lstc_systemtime.wmilliseconds=0return setsystemtime(lstc_systemtime)<>0end functionon nvo_datetime.createcall super::createtriggerevent( this, "constructor" )end onon nvo_datetime.destroytriggerevent( this, "destructor" )call super::destroyend onevent constructor;//**********************************************************////nvo_datetime 日期時間操作類 ,自創(chuàng)建不可視用戶對象 ////author:tiantianpb ////write date:2003-11-16 ////used:對各種常用的日期時間操作進行了相關(guān)的封裝 ////********************************************************* //end event
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 大丰市| 阳谷县| 水富县| 平安县| 承德县| 宜兰市| 岑巩县| 伊春市| 山东省| 凌云县| 木里| 沈丘县| 吉木萨尔县| 金昌市| 永城市| 山东省| 区。| 苗栗县| 白银市| 房产| 丰都县| 阿克苏市| 桐庐县| 绿春县| 凌海市| 大悟县| 泗水县| 东至县| 铁岭县| 南安市| 西乌珠穆沁旗| 兴义市| 贺州市| 修武县| 岳西县| 镇巴县| 松溪县| 沙洋县| 五指山市| 余庆县| 庆城县|