所以,我正在研究一种可视化,它可以计算一年中每天每小时特定位置的太阳角度和距离。计算占用大约550行代码,因此我将保留该代码。我使用D3库来获取日期范围的小时数和相对日,月和年的范围。为了获得范围,我正在使用这行代码。
var hourRange = d3.time.hours(new Date(2013, 1, 1), new Date(2013, 12, 31));
在计算完成后,我非常兴奋。拥有包含9个值的8736个对象,
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 :(得分:0)
D3.time.getDay()返回星期几的值。我需要使用D3.time.getDate()来获取当月的值。