hourAngle function

double? hourAngle(
  1. double lat,
  2. double h0,
  3. double dec
)

Approximate hour angle for rise/set.

Returns null if circumpolar or never rises.

Implementation

double? hourAngle(double lat, double h0, double dec) {
  final cosH = (math.sin(h0) - math.sin(lat) * math.sin(dec)) /
      (math.cos(lat) * math.cos(dec));
  if (cosH < -1 || cosH > 1) return null;
  return math.acos(cosH);
}