- Notifications
You must be signed in to change notification settings - Fork17
Calculates the sunrise and sunset for a given date and location (using GEO coordinates). This library uses the method outlined NOAA Solar Calculations Day spreadsheet found athttp://www.esrl.noaa.gov/gmd/grad/solcalc/calcdetails.html.
License
porrey/Solar-Calculator
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Calculates the sunrise and sunset for a given date and location (using GEO coordinates). This library uses the method outlined NOAA Solar Calculations Day spreadsheet found athttp://www.esrl.noaa.gov/gmd/grad/solcalc/calcdetails.html.
Add this to your project in Visual Studio using NuGet Package Manager UI and IDSolarCalculator or using the Package Manager Console.
PM> Install-Package SolarCalculator
Starting in version3.3.0 there are two new properties for checking if a date is a Polar Day (IsPolarDay
) or Polar Night (IsPolarNight
). If the combination of date and location result in a Polar Day or Polar Night, the values for Sunrise and Sunset are as follows:
Polar Day: Sunrise =DateTime.MinValue
, Sunset =DateTime.MaxValue
Polar Night: Sunrise =DateTime.MaxValue
, Sunset =DateTime.MinValue
The sample code below shows how to initialize and call the Solar Calculator to get the sunrise and sunset for the given location.
using System;using Innovative.SolarCalculator;//// Geo coordinates of Oak Street Beach in Chicago, IL//// NOTE: the .Date is not necessary but is included to demonstrate that time input // does not affect the output. Time will be returned in the current time zone so it // will need to be adjusted to the time zone where the coordinates are from (there // are services that can be used to get time zone from a latitude and longitude position).//TimeZoneInfo cst = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");SolarTimes solarTimes = new SolarTimes(DateTime.Now.Date, 41.9032, -87.6224);DateTime sunrise = TimeZoneInfo.ConvertTimeFromUtc(solarTimes.Sunrise.ToUniversalTime(), cst);//// Display the sunrise//Console.WriteLine($"View the sunrise across Lake Michigan from Oak Street Beach in Chicago at {sunrise.ToLongTimeString()} on {sunrise.ToLongDateString()}.");
//// Geo coordinates of Benton Harbor/Benton Heights in Michigan//TimeZoneInfo est = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time"); SolarTimes solarTimes = new SolarTimes(DateTime.Now, 42.1543, -86.4459);DateTime sunset = TimeZoneInfo.ConvertTimeFromUtc(solarTimes.Sunset.ToUniversalTime(), est);//// Display the sunset//Console.WriteLine($"View the sunset across Lake Michigan from Benton Harbor in Michigan at {sunset.ToLongTimeString()} on {sunset.ToLongDateString()}.");
About
Calculates the sunrise and sunset for a given date and location (using GEO coordinates). This library uses the method outlined NOAA Solar Calculations Day spreadsheet found athttp://www.esrl.noaa.gov/gmd/grad/solcalc/calcdetails.html.