我知道这篇文章很旧,但是万一有人还在找...
CoordinateSharp可作为Nuget软件包使用。这是一个独立包装,可以处理太阳和月亮时间。
Celestial cel = Celestial.CalculateCelestialTimes(85.57682, -70.75678, new DateTime(2017,8,21));
Console.WriteLine(cel.SunRise.Value.ToString());
Run Code Online (Sandbox Code Playgroud)
注意:
假定DateTimes始终为UTC。
最后,.Condition如果日期返回null ,则可能需要引用天体对象Sun / Moon 。当太阳整天升/降时,就会发生这种情况。
编辑1/9/2019
自从这篇文章以来,图书馆发生了巨大的变化。现在,它也可以处理当地时间。
我用NAA javascript和c#在C#中创建了这个库.
我对这两个网站进行了测试,它显示的时间与网站完全一样.
http://www.timeanddate.com/sun/usa/seattle
http://www.esrl.noaa.gov/gmd/grad/solcalc/
我已经在 UWP 中测试了这个 nuget 包。
https://www.nuget.org/packages/SolarCalculator/
该文档有点粗略,在这里:
https://github.com/porrey/Solar-Calculator
你可以用它来获取日出,给定
la = 纬度;lo = 经度;对于您所在的地区:
SolarTimes solarTimes = new SolarTimes(DateTime.Now, la, lo);
DateTime sr = solarTimes.Sunrise;
DateTime dt = Convert.ToDateTime(sr);
textblockb.Text = dt.ToString("h:mm:ss");
Run Code Online (Sandbox Code Playgroud)
您可以使用 PM 管理器在 Visual Studio 中安装它
Install-Package SolarCalculator -Version 2.0.2
Run Code Online (Sandbox Code Playgroud)
或者通过在“管理 NuGet 包”Visual Studio 库中查找 SolarCalculator。