【问题标题】:Bucketize CFAbsoluteTimes into round day NSDates将 CFAbsoluteTimes 分桶到一天 NSDates
【发布时间】:2013-03-25 00:42:00
【问题描述】:

我有一个 NSArrayCFAbsoluteTimes。它们应该从最早到最晚排序,但如果不是,我可以对它们进行排序。

我需要做的是找到最小和最大日期(例如 1 月 1 日到 1 月 5 日)并创建一个显示其间每天计数的分桶,例如:

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

类似的东西。将绝对时间转换为我可以数的某种舍入的NSDate 的最简单方法是什么?中间形式对我来说并不重要。我只需要编写一个在给定日期时返回计数的函数。

【问题讨论】:

    标签: objective-c nsarray nsdate buckets


    【解决方案1】:

    使用 NSDate 而不是 CFAbsoluteTime,您可能会更乐意在 Cocoa 中完全解决这个问题。

    适用文件为Date and Time Programming Guide

    您需要的一般方法是在NSCalendar 内工作,该NSCalendar 包含有关特定时区的所有关于每月天数、每年月数、闰年、DST 变化的所有信息。将您的 NSDate 实例转换为 NSDateComponent,您将能够提取日期和月份数字,然后从那里分桶。

    请记住,您编写的函数(在给定日期时返回计数)将隐式或显式地处理 NSCalendar 和 NSTimeZone 值。答案会因年份(是闰年吗?时间间隔是否包括闰日)和地区/日期(我们现在是否在这个位置观察夏令时?)而有所不同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-09
      • 2015-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-15
      • 1970-01-01
      • 2020-07-10
      相关资源
      最近更新 更多