注意:有關時間日期的庫函數,三月份作品(已發布)

發表于:2007-05-25來源:作者:點擊數: 標簽:日期三月份有關時間注意
[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