注意:有關時間日期的庫函數,三月份作品(已發布)
[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.anti-gravitydesign.com
国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97
|