【发布时间】:2011-05-05 09:51:00
【问题描述】:
是否有一个 Objective-C(或 C)库(与核心位置兼容)可以告诉我任何给定日历日的日出和日落时间?
【问题讨论】:
标签: iphone objective-c ios libraries astronomy
是否有一个 Objective-C(或 C)库(与核心位置兼容)可以告诉我任何给定日历日的日出和日落时间?
【问题讨论】:
标签: iphone objective-c ios libraries astronomy
我实际上已经移植了 KosherJava Library 并计划很快在 GitHub 上提供它!
编辑:
KosherCocoa 现已在 GitHub 上线!如果不需要希伯来日历相关代码,可以删除“日历”文件。类文件根据它们执行的计算类型很好地分隔到文件夹中。
编辑:KosherCocoa 我们将尽快替换为现代且更完整的更新。上面的链接现在指向一个遗留回购。
【讨论】:
在没有找到简单的 Swift 替代方案后,我创建了 Solar:一个 Swift 构建的 Sunrise / Sunset 微库。
【讨论】:
我使用了一个名为 SUNWAIT 的库。非常简单、有效 - 易于使用!
【讨论】:
【讨论】:
请注意..如果您使用 Berkley 的...那么它不起作用(至少在澳大利亚)。 它确实包含 Paul Schlyter C 代码,这很棒。
如果您希望它在任何地方工作,最好只计算 UTC 日期。
在 SunriseAndSunset.m 中,将代码替换为 双升; 双组; 如下:
sun_rise_set(theYear, theMonth, theDay, lon, lat, &rise, &set);
int hours = HOURS(rise);
int mins = MINUTES(rise);
int sethrs = HOURS(set);
int setmins = MINUTES(set);
NSTimeInterval riseOffset = ((hours * 60) + mins) * 60;
NSTimeInterval setOffset = ((sethrs * 60) + setmins) * 60;
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"];
NSString *dateStr = [NSString stringWithFormat:@"%i-%02d-%02dT00:00:00+0000", theYear, theMonth, theDay];
NSDate *utcMidnight = [formatter dateFromString:dateStr];
NSDate *utcSunrise = [utcMidnight dateByAddingTimeInterval:riseOffset];
NSDate *utcSunset = [utcMidnight dateByAddingTimeInterval:setOffset];
[formatter release];
[gregorian release];
return [NSDictionary dictionaryWithObjectsAndKeys:utcSunrise, @"sunrise", utcSunset, @"sunset", nil];
【讨论】:
+0000 而不是 +1000。下次使用[date descriptionInLocale:[NSLocale currentLocale]] 调试日期。 :-)
【讨论】:
EDSunriseSet 是一个开源和免费的 Objective-C 包装器,用于 Paul Schlyter 创建的 C 语言例程。
计算完全由 C 代码例程完成。 EDSunrisetSet 将这些计算连接到常见的 Cocoa 类(NSDate、NSTimeZone、...)
【讨论】: