这个计算器能做什么
昼长计算器只需要纬度和一年中的第几天,就能估算某地在特定日期能享受多长时间的白昼。它基于通用的天文模型,适用于地球上任何地方,与时区或国家无关。计算结果是几何意义上的昼长(即太阳中心从日出到日落的时间),并未考虑大气折射或太阳视圆面大小带来的修正。
如何使用
填入纬度(单位:度,北半球为正、南半球为负),以及一年中的第几天 \(N\),其中 1 月 1 日记为 1,12 月 31 日记为 365。计算器会给出以小数小时和「时分」两种形式表示的昼长,同时显示当天的夜晚长度和太阳赤纬。
公式详解
首先求太阳赤纬:
$$\delta = 23.45\sin\!\left(\frac{360}{365}(284+N)\right) \text{ 度}$$它在夏至日约为 +23.45°,在冬至日约为 −23.45° 之间往复变化。日出时角 \(H\) 满足 \(\cos(H) = -\tan(\phi)\tan(\delta)\)。由于太阳在 24 小时内转过 360°,整段白昼对应的角度(\(2H\))换算成时间即为
$$D = \frac{24}{\pi}\arccos(-\tan\phi\,\tan\delta) \text{ 小时}$$在靠近两极的地区,余弦值可能超出 ±1,此时结果为 24 小时(极昼)或 0 小时(极夜)。
实例演算
以北纬 40° 在夏至日(\(N = 172\))为例:\(\delta \approx 23.45°\)。代入得 \(-\tan(40°)\tan(23.45°) \approx -0.8391 \times 0.4337 \approx -0.3639\),\(\arccos(-0.3639) \approx 1.9437\) 弧度,于是
$$D = \frac{24}{\pi} \times 1.9437 \approx 14.85 \text{ 小时的白昼}$$常见问题
为什么和我的天气 App 显示的不完全一样? 天气类应用会加入大气折射的影响,并把日出定义为太阳上边缘刚接触地平线的时刻,这会让昼长多出大约 5–10 分钟。本计算器给出的是不含修正、以太阳中心为准的纯几何昼长。
纬度的有效范围是多少? 大约在 −66.5° 到 +66.5° 之间,结果总会落在 0 到 24 小时之间。超出极圈后,结果会饱和为 0 或 24 小时。
怎么知道某个日期是一年中的第几天? 从 1 月 1 日开始往后数即可。例如在平年里,6 月 21 日大约是第 172 天。