Daylight by LatitudeFeb 13, 2025

Every spring, as the seasons change and the sun rises higher each day, I try to figure out how much daylight we are gaining. Turns out there is an equation to calculate it to within a few minutes of accuracy for any latitude!

Astronomy Notes

Static Images:
Total Daylight
Change in Daylight

Hover the charts below for data

Daylight hours by latitude (-90° to 90°) over 365 days:
Daylight hours & change by latitude for January 1 (hover above to change date):

Note that the chart may be a little off for high latitudes around the solstices due to approximation in the formula.

Change in daylight hours by latitude (-90° to 90°) over 365 days:

The Equation

Source: mathforum.org

Date: 08/17/2000 at 11:13:56
From: David Toomey
Subject: Calculating daylight hours by date and latitude

I did quite a bit of searching, and finally found an article in Ecological Modeling, volume 80 (1995) pp. 87-95, called "A Model Comparison for Daylength as a Function of Latitude and Day of the Year." This article presented a model that apparently does a very good job of estimating the daylight - the error is less than one minute within 40 degrees of the equator, and less than seven minutes within 60 degrees and usually within two minutes for these latitudes.

\(D\)
\(L\)
\(J\)
Day length
Latitude
Day of the year
Hours
Degrees
1–365

$$ P = \arcsin(0.39795 \cdot \cos( 0.2163108 + 2 \cdot \arctan( 0.9671396 \cdot \tan(0.00860(J - 186)) ) ) $$

$$D = 24 - \frac{{24}}{{\pi}} \cdot \arccos(\frac{{\sin(0.8333 \cdot \frac{{\pi}}{{180}}) + \sin(L \cdot \frac{{\pi}}{{180}} ) \cdot \sin(P)}}{{\cos(L \cdot \frac{{\pi}}{{180}}) \cdot \cos(P)}}) $$

Original ASCII Equations

D = daylength
L = latitude
J = day of the year

P = asin[.39795*cos(.2163108 + 2*atan{.9671396*tan[.00860(J-186)]})]

                          _                                         _
                         / sin(0.8333*pi/180) + sin(L*pi/180)*sin(P) \
D = 24 - (24/pi)*acos   {  -----------------------------------------  }
                         \_          cos(L*pi/180)*cos(P)           _/
                

The Data