Pub style: very good analysis License: MIT

Get the sunset and sunrise times for a geolocation without having to access any remote api.

This is a simple implementation of the legendary Sunset/Sunrise algorithm.

Installation ๐Ÿ’ป

โ— In order to start using Daylight you must have the Dart SDK installed on your machine.

Add daylight to your pubspec.yaml:


Install it:

dart pub get

Usage ๐Ÿ“–

Check the API docs, example and tests for more information about how to use it.

import 'package:daylight/daylight.dart';

final berlin = DaylightLocation(52.518611, 13.408056);
final berlinCalculator = DaylightCalculator(berlin);
final dailyResults = berlinCalculator.calculateForDay(, Zenith.astronomical);
print(dailyResults.sunrise); // Some UTC datetime with sunrise hours like 08:32
print(dailyResults.type); // day type, will probably be sunriseAndSunset unless you live near the north pole or south pole

double eventHourEpoch = berlinCalculator.calculateEvent(, Zenith.official, EventType.sunset);

Running Tests ๐Ÿงช

To run all unit tests:

dart pub global activate coverage 1.2.0
dart test --coverage=coverage
dart pub global run coverage:format_coverage --lcov --in=coverage --out=coverage/

To view the generated coverage report you can use lcov.

# Generate Coverage Report
genhtml coverage/ -o coverage/

# Open Coverage Report
open coverage/index.html