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):
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)))
PB常用日期的更多相关文章
- PHP常用日期加减计算方法实例
PHP常用日期加减计算方法实例 实例总结了PHP常用日期加减计算方法.分享给大家供大家参考,具体如下: PHP 标准的日期格式 date("Y-m-d H:i:s"); PHP 简 ...
- js中常用日期时间转换
常用日期时间处理插件:1. timeago.js处理几分钟之前 2. day.js 3. moment.js 注意: 1. 此处的标准时间格式为 2018-03-23 13:35:47 ...
- Hive SQL 常用日期
Hive SQL 常用日期 原文地址:Hive SQL常用日期函数 Hive SQL 常用日期 注意: MM DD MO TU等要大写 已知日期 要求日期 语句 结果 本周任意一天 本周一 selec ...
- Json序列化日期/Date(xxxx)/ JS转化为常用日期格式
记录开发过程中的代码片段,方便日后归纳.总结,效果如图所示: 转换前: 转换后: 代码如下,需要的朋友们自取: //JS转化为json常用日期格式 function FormatToDate(v ...
- Java日期时间API系列12-----Jdk8中java.time包中的新的日期时间API类,日期格式化,常用日期格式大全
通过Java日期时间API系列10-----Jdk8中java.time包中的新的日期时间API类的DateTimeFormatter, 可以看出java8的DateTimeFormatter完美解决 ...
- Java 8的18个常用日期处理
Java 8的18个常用日期处理 一.简介 伴随 lambda表达式.streams 以及一系列小优化,Java 8 推出了全新的日期时间API. Java处理日期.日历和时间的不足之处:将 java ...
- PB常用函数
弹出窗口:messagebox() 基本写法:Messagebox('标题','内容') 完整写法: MessageBox ( '标题','内容',图标,按键,默认值) (1)其中标题与内容为要显示的 ...
- MySql常用日期函数(转载)
/*date_add(date,interval expr type)和date_sub(date,interval expr type)执行日期运算. date 是一个 datetime 或date ...
- Oracle常用日期函数
常用的时间格式掩码如下:掩码元素 含义YYYY 四位数年份 (如:2005) yearYY 二位数年份(如 05) Q ...
随机推荐
- Python--关于 join 和 split
.join() join将 容器对象 拆分并以指定的字符将列表内的元素(element)连接起来,返回字符串(注:容器对象内的元素须为字符类型) >>> a = ['no','pai ...
- vs版本的改变处理
今天要用VS2010打开VS2013,一直觉得VS2010到VS2012只是界面上扁平化的改变,平台工具集有改变但很大程度上可能向上兼容.在网上搜了一些文章,其中有一篇说到一个观点: 从 ...
- (04)odoo视图操作
-----------------更新时间19:04 2016-09-29 星期四11:17 2016-09-18 星期日18:13 2016-04-05 星期二15:05 2016-03-14 星期 ...
- C#多态问题
为什么对这个感觉趣呢.因为以前写过两篇关于这个多态和重载混合起来很乱的调用情况分析,自从哪以后,我自认为随便乱写一些继承多态的代码都应该难不到我.但是今天看到一段代码有一个地方计算错误了,所以有必要写 ...
- css3 keyframes animation
html,body,div,span,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,address,big,cite,code,del,em,font,img ...
- NSSet基础-初始化、获取元素、集合运算等
代码: #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepo ...
- Windows安装配置php+memcached的方法
Windows下Memcached的安装配置方法 1.将第一个包解压放某个盘下面,比如在c:\memcached. 2.在终端(也即cmd命令界面)下输入 'c:\memcached\memcache ...
- ASP.NET备份还原数据库
核心技术:using System.Data.SqlClient;using System.IO;string SqlStr1 = "Server=(local);DataBase=mast ...
- 告别硬编码-发个获取未导出函数地址的Dll及源码
还在为找内核未导出函数地址而苦恼嘛? 还在为硬编码通用性差而不爽吗? 还在为暴搜内核老蓝屏而痛苦吗? 请看这里: 最近老要用到内核未导出的函数及一些结构,不想再找特征码了,准备到网上找点符号文件解析的 ...
- C#解析Json(多方法解析Json 一)
解析:{'id':'4028d80858053bed0158053ef7a50001','sl':0.0,'sfyfz':'0','zwjyzsbh':'1000001600000018'} 1.新建 ...