我有一个NSArray
CFAbsoluteTime
s。 它们应该从最早到最新排序,但如果不是,我可以对它们进行排序。
我需要做的是找到最小和最大日期(例如 1 月 1 日至 1 月 5 日(,并创建一个桶化来显示两者之间每天的计数,例如:
Jan 1 - 1
Jan 2 - 0
Jan 3 - 4
Jan 4 - 0
Jan 5 - 3
类似的东西。 将绝对时间转换为我可以计算的某种四舍五入NSDate
的最简单方法是什么? 中间形式对我来说并不重要。 我只需要编写一个函数,在给定日期时返回计数。
这个问题,在Cocoa中完全工作可能会更快乐,使用NSDate而不是CFAbsoluteTime。
适用的文档是日期和时间编程指南。
您需要的一般方法是在 NSCalendar
内工作,它封装了有关每月天数、每年月数、闰年、DST 更改的所有信息,所有这些都针对特定时区。将您的 NSDate
实例转换为 NSDateComponent
,您将能够提取日和月数字,然后从那里进行存储桶化。
请记住,您编写的函数(给定日期时返回计数(将隐式或显式地处理 NSCalendar 和 NSTimeZone 值。答案会因年份(是闰年吗?间隔是否包括闰日(和区域设置/日期(我们现在在这个位置观察夏令时吗?(而异。