I searched the web for a piece of code that calculates the Sunrise/Sunset based on the Date and a latitude and longitude, but could not find one in C++ that was freely available. People have FreeWare out there, but were unwilling to give out the source as they deemed it to "valuable". So I took it upon myself to convert one of the other freely available pieces of code, and convert it for everyone to use.
The three main functions are:
CTime GetSunset(double dLat,double dLon,CTime time);
CTime GetSunrise(double dLat,double dLon,CTime time);
CTime GetSolarNoon(double dLon, CTime time);
which take in Latitude and Longitude values as
doubles and a
CTime with the
Date that you want to calculate the SR/SS for. It returns a
CTime in UTC.
I have included a non-MFC Tray icon class I have written, with the example. It has the basic functionality to display a tray icon, and can be used in MFC, Win32 and ATL applications. Probably not as good as the newest CSystemTray, but I use it with Win32 to make very small footprint applications!!
I have also added more functionality to the demo, as the way I originally submitted it, it had very little actual functionality. I also added the code so it is converted from UTC as well.
Hope someone finds it useful....
This article has no explicit license attached to it, but may contain usage terms in the article text or the download files themselves. If in doubt, please contact the author via the discussion board below.
A list of licenses authors might use can be found here.