12个用一条语句写成的有关日期函数
来源:互联网 发布:million years ago知乎 编辑:程序博客网 时间:2024/05/21 13:54
12个用一条语句写成的有关日期函数
?
//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):
a.
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)
b.
relativedate(date(year(ls_date)+integer(month(ls_date)/12),mod(month(ls_date),12)+1,1),-1)
//8.另一个求某月天数(日期参数:date ls_date? 返回参数:int):
a.
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))
b.
day(relativedate(date(year(ls_date)+integer(month(ls_date)/12),mod(month(ls_date),12)+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)
//11.求某日在当年所处的周数(日期参数:date ls_date? 返回参数:int):
//a.周始日为星期天
//a1
abs(int(-((daysafter( relativedate(date(year(ls_date),1,1), -mod(year(ls_date) -1 + int((year(ls_date) -1)/4) - int((year(ls_date) -1)/100) + int((year(ls_date) -1)/400) + 1,7) +1),ls_date)+1)/7)))
//a2(使用daynumber函数)
abs(int(-((daysafter( relativedate(date(year(ls_date),1,1), -daynumber(date(year(ls_date),1,1))+1),ls_date)+1)/7)))
?
//b.周始日为星期一
//b1
abs(int(-((daysafter( relativedate(date(year(ls_date),1,1), -integer(mid(6012345,mod(year(ls_date) -1 + int((year(ls_date) -1)/4) - int((year(ls_date) -1)/100) + int((year(ls_date) -1)/400) + 1,7),1))),ls_date)+1)/7)))
//b2(使用daynumber函数)
abs(int(-((daysafter( relativedate(date(year(ls_date),1,1), -integer(mid(6012345,daynumber(date(year(ls_date),1,1)),1))),ls_date)+1)/7)))
//12.求某日相对于过去某一日期所处的周数(日期参数:date ls_date_1(要求的某日),ls_date_2(过去的某日)? 返回参数:int):
//注:ls_date_1>ls_date_2
//a.周始日为星期天
//a1
abs(int(-((daysafter( relativedate(ls_date_2, -mod(year(ls_date_2) -1 + int((year(ls_date_2) -1)/4) - int((year(ls_date_2) -1)/100) + int((year(ls_date_2) -1)/400) + daysafter(date(year(ls_date_2),1,1),ls_date_2)+ 1,7) +1),ls_date_1)+1)/7)))
//a2(使用daynumber函数)
abs(int(-((daysafter( relativedate(ls_date_2, -daynumber(ls_date_2)+1),ls_date_1)+1)/7)))
?
//b.周始日为星期一
//b1
abs(int(-((daysafter( relativedate(ls_date_2, -integer(mid(6012345,mod(year(ls_date_2) -1 + int((year(ls_date_2) -1)/4) - int((year(ls_date_2) -1)/100) + int((year(ls_date_2) -1)/400) + daysafter(date(year(ls_date_2),1,1),ls_date_2)+ 1,7) ,1))),ls_date_1)+1)/7)))
//b2(使用daynumber函数)
abs(int(-((daysafter( relativedate(ls_date_2, -integer(mid(6012345,daynumber(ls_date_2),1))),ls_date_1)+1)/7)))
某月最后一天日期
relativedate(date(year(ld_1)+integer(month(ld_1)/12),mod(month(ld_1),12)+1,1),-1)
取得最后一天
day(上面语句)
闰年(1为闰年, 0为平年)
integer(day(relativedate(date(year(ld_1), 3, 1), -1))/29)
当前日期所在星期数
integer(daysafter(date(year(ad_date), 1, 1), ad_date)/7) + 1 + integer((daynumber(date(year(ad_date), 1, 1)) + mod(daysafter(date(year(ad_date), 1, 1), ad_date), 7) -1)/7)
- 12个用一条语句写成的有关日期函数
- 12个用一条语句写成的有关日期函数
- 12个用一条语句写成的有关日期函数
- 12个用一条语句写成的有关日期函数
- 12个用一条语句写成的有关日期函数
- 12个用一条语句写成的有关日期函数
- 10个用一条语句写成的有关日期函数
- 用js写成的漂亮的日历日期
- 把字段的值用sql语句写成表头
- sql语句的日期函数
- oracle中有关日期的函数
- 有关日期的SAP函数使用
- PB一些有关日期的实用函数
- php有关的几个日期函数
- 有关日期类的成员函数
- mysql 日期时间有关的函数
- GetMessage函数 第二个 写成了hwnd
- 用一条SQL语句查询一张表得到不同条件的多个结果
- 今天装上了VS2010
- 我的激情 怎么了!
- 一位软件工程师的6年总结_I'm a C fans!(转载)
- 定制 SWT/RCP 界面:如何编写一个漂亮的 SWT/RCP 界面
- 儿童腕式手机
- 12个用一条语句写成的有关日期函数
- 三种找每个客户最小订单的写法
- mutex 和 semaphone 的区别 (1)
- 程序员之死:技术不是最重要的?
- 获取指定页面的HTML源码
- 网络程序开发库备忘
- 关于程序员好坏差异的一个鲜为人知的秘密
- 严重:Error listenerStart
- Java web-w1:java web、jsp、JavaScript之间的区别