为指定地点和日期计算日出、日落和晨昏时间。
只有一个类:FESSolarCalculator
-initWithDate:location:
方法返回新对象-initWithDate:location:mask:
限制要执行的计算FESSolarCalculationType
枚举以了解计算类型注意:如果未运行计算或计算超出计算掩码,则属性将为 nil。
此外,还提供了两个作为实用工具的类方法
+julianDayNumberFromDate
+dateFromJulianDayNumber
这些提供将日期转换为儒略日和从儒略日转换回日期的功能。通常只需使用 'g' 格式选项即可 NSDateFormatter
,但在开发中发现了一个错误,该错误将转换到的和从某个特定日期转换回的时间错误。有关详情请参阅 http://openradar.appspot.com/11023565。当或如果该错误已被解决,这些将被重访或删除。
请参阅源代码中的示例。建议您的起始日期为中午,但可以是给定日期中的任何时间。
有一个已知问题
检查项目的 问题页面 了解最新状态。
精度可能在大约三分钟左右,主要由于近似计算。此外,这次计算没有考虑空气温度、海拔等因素的影响。这些因素加起来可能会使时间误差达到五分钟或更多。如果你需要非常精确的太阳计算,这很可能不是你需要的。
请注意,在此时代码中,2000年1月1日GMT之前的日期无法保证正确的结果(如果有的话)。
此存储库中的源代码使用自动引用计数。目前没有计划支持非ARC代码。如果你的项目需要非ARC代码,请使用-fobjc-arc编译这些文件。有关详细信息,请参阅clang文档。
此代码受MIT许可证许可。许可证内容如下。如果需要非归属许可,请联系Daniel Weeks获取详细信息
版权所有 © 2012 Daniel Weeks。
在此特此授予任何获得此软件副本及其相关文档文件(“软件”)的人免费权,无限制地处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许向获得软件的人提供软件副本,以执行上述行为,但须遵守以下条件
在所有副本或软件的实质性部分中应包括上述版权声明和本许可声明。
软件按“原样”提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适销性、适用于特定用途和版权。在任何情况下,作者或版权所有者均不对因软件或其使用或任何其他行为而产生的任何主张、损害或其他责任负责,无论是基于合同、侵权或其他行为。