PB日期函数合集:生肖、天干地支、星座与闰年
版权申诉
27 浏览量
更新于2024-08-12
收藏 43KB DOC 举报
"PB用一条语句写成的有关日期函数(生肖、天干地支、星座、闰年等).doc"
在PowerBuilder编程环境中,日期函数的处理是开发者经常遇到的任务。以下是一些利用单条语句实现的高效日期功能,它们涵盖了生肖、天干地支、星座以及闰年的计算:
1. 生肖函数:
这个函数通过将给定的年份减去1900(因为1900年是公历生肖周期的起点),然后取模12来确定对应的生肖位置,最后从预填充的字符串中提取相应的生肖字符。例如,对于1990年,返回的是"马"。
```pb
mid(fill('鼠牛虎兔龙蛇马羊猴鸡狗猪',48),(mod(ls_year-1900,12)+13)*2-1,2)
```
2. 天干地支函数:
天干地支的计算同样涉及到年份的处理。年份减去1924后取模10得到天干位置,取模12得到地支位置,再从对应的字符串中提取字符。例如,对于1990年,返回的是"庚午"。
```pb
mid('甲乙丙丁戊己庚辛壬癸',40,(mod(ls_year-1924,10)+11)*2-1,2) +
mid('子丑寅卯辰巳午未申酉戌亥',48,(mod(ls_year-1924,12)+13)*2-1,2)
```
3. 星座函数:
这个函数基于月份和日期,考虑了每个星座的起始日期。它会计算出星座名称在字符串中的位置并返回。例如,对于2月15日,返回的是"水瓶座"。
```pb
mid("摩羯水瓶双鱼白羊金牛双子巨蟹狮子处女天秤天蝎射手摩羯",
(month(ls_date) + sign(sign(day(ls_date) - (19 + integer(mid('102123444423', month(ls_date), 1)))) + 1)) * 4 - 3, 4) + '座'
```
4. 闰年判断函数:
判断闰年的标准是:能被4整除但不能被100整除,或者能被400整除。这个函数使用一系列的取模和比较操作来确定是否为闰年。例如,对于1900年,返回0(非闰年),对于2000年,返回1(闰年)。
```pb
abs(sign(mod(sign(mod(abs(ls_year),4)) + sign(mod(abs(ls_year),100)) + sign(mod(abs(ls_year),400)),2)) - 1)
```
5. 某月天数函数:
根据公历规则,这个函数根据年份和月份来计算该月的天数。例如,对于2月,会根据是否为闰年来确定天数。
```pb
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. 某月最后一天日期函数:
这个函数会返回给定日期所在月份的最后一天。虽然代码没有给出完整实现,但通常会结合上述某月天数函数来获取这个日期。
```pb
date(year(ls_date), month(ls_date), <计算出的该月最后一天>)
```
以上这些单行日期处理函数展示了PowerBuilder中高效编程的可能性,使得在处理日期逻辑时可以更加简洁和直观。不过要注意,这些函数适用于PB6.5,如果在PB8.0或更高版本中使用,可能需要根据实际字节编码进行调整,特别是涉及到字符串填充和截取的部分。
2011-02-23 上传
2009-12-28 上传
2023-03-25 上传
2023-09-08 上传
2023-05-25 上传
2023-05-25 上传
2023-03-04 上传
2023-05-24 上传
2023-05-11 上传
悠闲饭团
- 粉丝: 184
- 资源: 3385
最新资源
- 十种常见电感线圈电感量计算公式详解
- 军用车辆:CAN总线的集成与优势
- CAN总线在汽车智能换档系统中的作用与实现
- CAN总线数据超载问题及解决策略
- 汽车车身系统CAN总线设计与应用
- SAP企业需求深度剖析:财务会计与供应链的关键流程与改进策略
- CAN总线在发动机电控系统中的通信设计实践
- Spring与iBATIS整合:快速开发与比较分析
- CAN总线驱动的整车管理系统硬件设计详解
- CAN总线通讯智能节点设计与实现
- DSP实现电动汽车CAN总线通讯技术
- CAN协议网关设计:自动位速率检测与互连
- Xcode免证书调试iPad程序开发指南
- 分布式数据库查询优化算法探讨
- Win7安装VC++6.0完全指南:解决兼容性与Office冲突
- MFC实现学生信息管理系统:登录与数据库操作