JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Web Design 版  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 JavaScript版本的週曆計算公式
wing_zero

Keroro捕獲~~是也



發文: 213
積分: 9
於 2006-12-28 00:33 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
一般的JavaScript版萬年曆沒啥稀奇,網路上一堆可以參考。
但是要讓萬年曆顯示該週是該年度的第几週,就不太容易了。

以下相關的演算法,有興趣的人可以參考一下
1
2
3
4
5
Date.prototype.getWeekNumber = function() {
 var selectDate = new Date(this.getFullYear(), this.getMonth(), this.getDate());
 var firstDateOfSelectYear = new Date(this.getFullYear(),0,1);
 return Math.ceil((((selectDate - firstDateOfSelectYear) / 86400000) + (firstDateOfSelectYear.getDay()+1))/7); 
};


使用下列語法就可顯示週別
1
2
var today = new Date();
var weekNumber = today.getWeekNumber();


這個週別的計算公式是假定每星期的第一天是星期日,每星期的最後一天是星期六,該年度的一月一日算是該年度的起始第一週。這算法跟國際標準的週曆算法不同,卻符合台灣大多數製造業的需求。

此外...有人知道算週別時
1
Math.ceil((((selectDate - firstDateOfSelectYear) / 86400000) + (firstDateOfSelectYear.getDay()+1))/7);

這裡面為何要加這段"firstDateOfSelectYear.getDay()+1"嗎?

之前我看不少版本的週曆計算公式,有的是只寫"firstDateOfSelectYear.getDay()",有的卻是寫"firstDateOfSelectYear.getDay()+1"。我自己試過的結果是要用"firstDateOfSelectYear.getDay()+1"算出來的值才是對的。


wing_zero edited on 2006-12-28 00:38
reply to postreply to post
俺的部落格
話題樹型展開
人氣 標題 作者 字數 發文時間
6151 JavaScript版本的週曆計算公式 wing_zero 939 2006-12-28 00:33
» JWorld@TW »  Web Design 版

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8