特定の暦日の日の出と日の入りの時間を教えてくれる Objective-C (または C) ライブラリ (コアの場所と互換性がある) はありますか?
7 に答える
EDSunriseSetは、 Paul Schlyterによって作成された C 言語ルーチン用のオープン ソースで無料の Objective-C ラッパーです。
計算はすべて C コード ルーチンによって行われます。EDSunrisetSet は、これらの計算を一般的な Cocoa クラス (NSDate、NSTimeZone など) に橋渡しします。
私は実際にKosherJava ライブラリを移植しており、GitHub ですぐに利用できるようにする予定です!
編集:
KosherCocoaが GitHub で公開されました! ヘブライ暦関連のコードが必要ない場合は、「calendar」ファイルを削除できます。クラス ファイルは、実行する計算の種類に基づいて適切にフォルダーに分割されます。
編集:KosherCocoaは、できるだけ早く最新のより完全なアップデートに置き換えられる予定です. 上記のリンクは現在、従来のリポジトリを指しています。
SUNWAITというライブラリを使用しました。非常にシンプルで効果的 - 使いやすい!
シンプルな Swift の代替案が見つからなかったので、Solarを作成しました。Swift で作成された Sunrise / Sunset 用のマイクロライブラリです。
ただメモ.. バークレーのものを使用する場合...まあ、それは機能しません (少なくともオーストラリアでは)。ただし、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];
これを試してください: https://github.com/berkley/ObjectiveCUtil