2014-11-21 100 views
0

因此,我正在研究計算一年中每天每個小時在特定位置的太陽的角度和距離的可視化。這些計算佔用了大約550行代碼,因此我將該代碼保留。我使用D3庫來獲取日期範圍和相關的日期,月份和年份。爲了獲得範圍,我使用這一行代碼。D3按小時計日期範圍;每7天重複一次

var hourRange = d3.time.hours(new Date(2013, 1, 1), new Date(2013, 12, 31)); 

在計算工作後,我非常興奮。擁有8736個對象持有的9個值,

hourRange[i] = [hour, day, month, year, solar azimuth angle, solar elevation angle, EOT, solar declination angle, cosine of solar zenith angle] 

...終於開始了可視化的過程中,我發現,當天值從0-6去了,但不是直到月末增加,繼續重複0-6直到月底,然後再次開始0-6值循環。從計算中思考這可能是一個問題,我試着直接打印小時範圍的日期值,並發現相同的問題。讀取D3庫的時間間隔API參考,這似乎是一個異常錯誤。

有沒有人知道爲什麼會發生這種情況,以及任何解決方案來獲得小時的範圍和他們的相對日期,而沒有每週重複每週價值的問題?任何有識之士將不勝感激!

編輯:要清楚。當類型hourRange [500]在控制檯,它返回:

Date 2013-02-22T01:00:00.000Z 

但是,當我在控制檯鍵入hourRange [500] .getDay(),它返回:

4 

當它應該明確是22.

回答

0

D3.time.getDay()返回星期幾的值。我需要使用D3.time.getDate()來獲取當月的日期值。