19

特定の暦日の日の出と日の入りの時間を教えてくれる Objective-C (または C) ライブラリ (コアの場所と互換性がある) はありますか?

4

7 に答える 7

23

EDSunriseSetは、 Paul Schlyterによって作成された C 言語ルーチン用のオープン ソースで無料の Objective-C ラッパーです。

計算はすべて C コード ルーチンによって行われます。EDSunrisetSet は、これらの計算を一般的な Cocoa クラス (NSDate、NSTimeZone など) に橋渡しします。

于 2012-03-19T10:27:30.773 に答える
8

私は実際にKosherJava ライブラリを移植しており、GitHub ですぐに利用できるようにする予定です!

編集:

KosherCocoaが GitHub で公開されました! ヘブライ暦関連のコードが必要ない場合は、「calendar」ファイルを削除できます。クラス ファイルは、実行する計算の種類に基づいて適切にフォルダーに分割されます。

編集:KosherCocoaは、できるだけ早く最新のより完全なアップデートに置き換えられる予定です. 上記のリンクは現在、従来のリポジトリを指しています。

于 2011-04-17T03:59:13.433 に答える
6

SUNWAITというライブラリを使用しました。非常にシンプルで効果的 - 使いやすい!

于 2010-11-05T01:43:03.000 に答える
2

シンプルな Swift の代替案が見つからなかったので、Solarを作成しました。Swift で作成された Sunrise / Sunset 用のマイクロライブラリです。

于 2016-04-14T10:57:21.763 に答える
1

ただメモ.. バークレーのものを使用する場合...まあ、それは機能しません (少なくともオーストラリアでは)。ただし、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];
于 2012-08-15T02:37:08.040 に答える
0

これを試してください: https://github.com/berkley/ObjectiveCUtil

于 2012-07-30T14:07:34.853 に答える