0

私はのを持っていNSArrayますCFAbsoluteTime。早いものから遅いものへと並べ替える必要がありますが、そうでない場合は並べ替えることができます。

私がする必要があるのは、最小日と最大日(たとえば、1月1日から1月5日)を見つけて、その間の各日のカウントを示すバケット化を作成することです。

Jan 1 - 1
Jan 2 - 0
Jan 3 - 4
Jan 4 - 0
Jan 5 - 3

そんな感じ。NSDate絶対時間を数えることができるある種の丸めに変換する最も簡単な方法は何ですか?中間フォームは私にはあまり関係ありません。日付を指定するとカウントを返す関数を作成する必要があります。

4

1 に答える 1

0

CFAbsoluteTimeの代わりにNSDateを使用して、この問題についてCocoaで完全に作業する方がおそらく幸せです。

該当するドキュメントは、日付と時刻のプログラミングガイドです。

必要な一般的なアプローチはNSCalendar、1か月あたりの日数、1年あたりの月数、うるう年、DSTの変更、すべて特定のタイムゾーンに関するすべての情報をカプセル化する内で作業することです。NSDateインスタンスをに変換するNSDateComponentと、日と月の数値を抽出し、そこからバケット化できるようになります。

作成する関数(日付が指定されたときにカウントを返す)は、暗黙的または明示的にNSCalendar値とNSTimeZone値を処理する必要があることに注意してください。答えは、年(うるう年ですか?間隔にはうるう日が含まれますか)およびロケール/日付(現在この場所で夏時間を採用していますか?)によって異なります。

于 2013-03-25T01:07:28.267 に答える