注意:有关时间日期的库函数,三月份作品(已发布)
[size=18:02d4fd6cac][b:02d4fd6cac] 由于已有十二位网友“顶”力相助了,我将这个库发布出来。有了前面的教训,我不打算在这里帖出来了。请直接到我的演示地址去下载。这次这个演示例子比较清楚,怎么用大家自己参考吧,请仔细看库函数,然后自己去组合,可
[size=18:02d4fd6cac][b:02d4fd6cac]
由于已有十二位网友“顶”力相助了,我将这个库发布出来。有了前面的教训,我不打算在这里帖出来了。请直接到我的演示地址去
下载。这次这个演示例子比较清楚,怎么用大家自己参考吧,请仔细看库函数,然后自己去组合,可以完成更多的功能。
演示网址:
http://longnetpro.xicp.net/demo
另外:源码中要注意函数的参数中有可能传递引用,主要是用于一个函数中同时返回多个结果——通过引用传到函数外部。
[/b:02d4fd6cac][/size:02d4fd6cac]
简介:
有关时间日期的库函数,三月份作品,共二十二个函数(这次没有用OO)。
该库函数分两个主要部分:日期处理部分与时间处理部分。
在日期处理方面,有朱力安历及高格里历(及现在公历)的日期处理,并处理1582年日期修正。函数有判断闰年,检查日期有效性,距公元元年一月一日零时的天数等函数,象取得某年某月某日是当年第几天或是星期几这种是基本函数,就不再提了。还有一些函数,如将距公元元年一月一日的天数转换为具体年月日(可以为公元前的日期)的函数;得到某年某月的第几个星期几是几号的函数;将日期转换为ISO8601格式的函数;取得黄道星座的函数等等。
在时间处理方面,时间范围与
UNIX时间戳兼容(在1970年到2038年与UNIX时间戳是完全一致的,就是说时间戳还是以GMT1970年1月1日零时为时间戳的0,前面的是负数,后面的是正数),但远远大于UNIX时间戳的范围。时间范围从公元前4713年1月1日00:00:00(朱力安历零时)到公元9999年12月31日23:59:59。有分别对应于mktime及gmmktime的经过扩展的函数。还有一个专门的函数将时间戳(扩展后的)转换为年月日、时分秒、星期、天数等信息,以方便直接使用。
将这些函数组合起来使用,基本上可以实现对日期与时间的各种操作。比如求两个日期之间的天数差,只需用函数得到两个日期距公元元年一月一日的距离,相减即可。或是某个日期加上天数然后逆变为日期。你还可以将它们组合起写成更多自己的函数。
在所有的函数中,没有用到任何循环,不象ADODB中那样处理时间——好象ADODB中的时间处理大量用循环递增或递减,真不知道其作者为什么用这种方式算日期与时间——分析它的代码后估计是对那些历史上修正过的日期不好处理,由于修正过,日期与星期会错位。我这个库函数中都是纯加减乘除取模取整并用条件判断,一般都是一次计算出来,没有循环计算的情况。
注:这些库函数基本经过本人严格检验,程序上应该没有什么
BUG(如果有的话欢迎指出)。这次有些英文注释,不过由于算法比较多,可能数学不好的人不大看得懂,还有对历法不清楚的人也不大看得懂(当时我为了写这些函数上网查历法就查了好久)。反正你到时候试着用就完了。
最后,声明一下。本库函数中有一个算法是参考了PEAR中相关类的一个方法,即将距公元元年第一天的天数转换为具体年月日的算法——典型的数学变换技巧,实在是佩服想出这个算法的人。在ADODB中的时间处理部分发现了ISO8601规范,并在网上查到具体规范再实现之(实现过程是原创的)。其余所有函数中涉及的所有算法均是在核实历法之后由本人原创,库的设计也是原创。至于说其中有些数据值是怎么得来的,只能说一句:是用计算器或是写个小程序算出来的,本人可以基本保证这些数据的正确性(除了我不知道的历法变化不能保证外)。
有兴趣的朋友可以跟帖。如果有更好的建议可以讨论。
tonera 回复于:2004-05-17 12:42:10
|
建议:为了大家能更好更深刻更容易地理解您的大作的精华,是不是考虑给出足够多的注释(中文更佳)?
|
longnetpro 回复于:2004-05-17 12:54:39
|
主要是本人太懒,一般函数名,变量名基本上就表示出大致的算法流程,因此不大写注释。还有一个就是本人自认为代码逻辑还算是比较清晰的,很多无关紧要的东西都没有必要写注释。至于为什么不用中文,很简单:写代码的时候老要切换输入法,比较烦。再说,在一大篇英文字母中夹进一些汉字,看着不舒服(我一直用UE写代码,夹进汉字字体比较难看)。
|
vidarz 回复于:2004-05-17 13:09:11
|
我来顶一下,有好东西看当然期待了。肯定又是一个精华贴。
|
gzdkj 回复于:2004-05-17 17:46:58
|
期待中~~~
|
夜猫子 回复于:2004-05-17 20:28:01
|
老大愿意贡献,偶们当然乐得其成,呵呵
|
飞雪恨水 回复于:2004-05-18 11:02:34
|
好东西太多了
|
mikespook 回复于:2004-05-18 11:49:35
|
好东东~~~
用中文注释难看,那就用英文啦~~ ^_^
|
EasyChen 回复于:2004-05-18 14:33:22
|
up下 等着看好东西了
|
jhsea3do 回复于:2004-05-18 20:54:14
|
顶, up, sp !!!
|
oklqh 回复于:2004-05-19 00:07:06
|
waitting~~~
|
muyan 回复于:2004-05-19 12:04:03
|
now waiting...
|
longnetpro 回复于:2004-05-19 21:35:33
|
自己再顶一下,还差两个人。。。
|
夜猫子 回复于:2004-05-19 21:36:36
|
老大,你要逼我注册马甲是不是?
|
vidarz 回复于:2004-05-20 14:28:31
|
[quote:f7e3691f1c="longnetpro"]自己再顶一下,还差两个人。。。[/quote:f7e3691f1c]
偶是刚注册的新人,偶也来顶一下 8)
|
gzdkj 回复于:2004-05-20 18:48:59
|
还没发布?顺便再顶一下!!!
|
longnetpro 回复于:2004-05-20 19:47:19
|
[quote:b885c378d5="gzdkj"]还没发布?顺便再顶一下!!![/quote:b885c378d5]
就等最后一位了。
|
csona 回复于:2004-05-20 23:11:01
|
我顶
|
longnetpro 回复于:2004-05-21 09:27:57
|
由于各位的支持,现在发布了。
|
longnetpro 回复于:2004-05-21 09:53:31
|
刚才有一个函数修正了一下,下载过的请重新下载。
|
vidarz 回复于:2004-05-21 10:13:00
|
不错!
|
li2002 回复于:2004-05-24 08:31:33
|
不错,谢谢
|
yutian 回复于:2004-05-24 09:02:39
|
ding
|
shanhan 回复于:2004-05-24 13:44:16
|
heheh!
我看不懂啊
|
PHPstupid 回复于:2004-05-24 16:01:15
|
顶一下
|
w_heaven 回复于:2004-05-28 12:57:31
|
好东西
|
huabingl 回复于:2004-05-28 13:19:39
|
提供的几个类是学习的好材料阿,感激不已
|
原文转自:http://www.ltesting.net
|