PB一些有關日期的實用函數

PB一些有關日期的實用函數

 
//1.生肖(年份參數:int ls_year  返回參數:string):
mid(fill('鼠牛虎兔龍蛇馬羊猴雞狗豬',48),(mod(ls_year -1900,12)+13)*2 -1,2)


//2.天干地支(年份參數:int ls_year  返回參數:string):
mid(fill('甲乙丙丁戊己庚辛壬癸',40),(mod(ls_year -1924,10)+11)*2 -1,2)+mid(fill('子醜寅卯辰巳午未申酉戌亥',48),(mod(ls_year -
1924,12)+13)*2 -1,2)


//3.星座(日期參數:date ls_date  返回參數:string):
mid("摩羯水瓶雙魚白羊金牛雙子巨蟹獅子處女天秤天蠍射手摩羯",(month(ls_date)+sign(sign(day(ls_date) -(19+integer(mid
('102123444423',month(ls_date),1))))+1))*4 -3,4)+'座'

//4.判斷閏年(年份參數:int ls_year  返回參數:int 0=平年,1=閏年):
abs(sign(mod(sign(mod(abs(ls_year),4))+sign(mod(abs(ls_year),100))+sign(mod(abs(ls_year),400)),2)) -1)


//5.某月天數(日期參數:date ls_date  返回參數:int):
integer(28+integer(mid('3'+string(abs(sign(mod(sign(mod(abs(year(ls_date)),4))+sign(mod(abs(year(ls_date)),100))+sign(mod(abs(year
(ls_date)),400)),2)) -1))+'3232332323',month(ls_date),1)))


//6.某月最後一天日期(日期參數:date ls_date  返回參數:date):
date(year(ls_date),month(ls_date),integer(28+integer(mid('3'+string(abs(sign(mod(sign(mod(abs(year(ls_date)),4))+sign(mod(abs(year
(ls_date)),100))+sign(mod(abs(year(ls_date)),400)),2)) -1))+'3232332323',month(ls_date),1))))


//7.另一個求某月最後一天日期(日期參數:date ls_date  返回參數:date):
RelativeDate (date(year(ls_date)+sign(month(ls_date) -12)+1,mod(month(ls_date)+1,13)+abs(sign(mod(month(ls_date)+1,13)) -1),1),-1)


//8.另一個求某月天數(日期參數:date ls_date  返回參數:int):
day(RelativeDate (date(year(ls_date)+sign(month(ls_date) -12)+1,mod(month(ls_date)+1,13)+abs(sign(mod(month(ls_date)+1,13)) -
1),1),-1))


//9.某月某日星期幾--同PB系統函數DayName(日期參數:date ls_date  返回參數:string):
'星期'+mid('日一二三四五六',(mod(year(ls_date) -1 + int((year(ls_date) -1)/4) - int((year(ls_date) -1)/100) + int((year(ls_date) -
1)/400) + daysafter(date(year(ls_date),1,1),ls_date)+1,7)+1)*2 -1,2)


//10.求相隔若干月份後的相對日期(日期參數:date ls_date 相隔月份(可取負數):int ls_add_month 返回參數:date):
date(year(ls_date)+int((month(ls_date)+ls_add_month)/13),long(mid(fill('010203040506070809101112',48),(mod(month(ls_date)
+ls_add_month -1,12)+13)*2 -1,2)),day(ls_date) -integer(right(left(string(day(RelativeDate (date(year(ls_date)+int((month(ls_date)
+ls_add_month)/13)+sign(long(mid(fill('010203040506070809101112',48),(mod(month(ls_date)+ls_add_month -1,12)+13)*2 -1,2)) -12)+
1,mod(long(mid(fill('010203040506070809101112',48),(mod(month(ls_date)+ls_add_month -1,12)+13)*2 -1,2))+1,13)+abs(sign(mod(long(mid
(fill('010203040506070809101112',48),(mod(month(ls_date)+ls_add_month -1,12)+13)*2 -1,2))+1,13)) -1),1),-1)) -day(ls_date),'00')
+'00000',5),3))/100)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章