对象表示绝对日期和时间,例如 2012年NSDate
9 月 4 日,晚上 10:00 CDT。虽然当事件确实在某个时刻确实发生时这很好用,NSDate
但当您处理重复发生的事件时,处理起来就麻烦多了。例如,我目前正在开发一个存储企业营业时间的应用程序。大多数企业都有每周计划,这意味着我想存储每个工作日的时间,无论日期如何。
有几种解决方案:创建一个额外的实体(我正在使用核心数据),小时,具有工作日、小时和分钟的属性,然后以这种方式计算出来。这可以用于简单的显示,但我还要添加一个“状态”(例如“打开到 x”、“在 y 分钟内关闭”或“将在 z 处打开”)。这意味着我要么必须创建NSDate
对象来进行比较,要么获取 current 的 weekday、hour 和 minute 属性NSDate
。
另一种选择是为NSDate
每个企业存储两个 s(打开和关闭),忽略实际日期,仅使用工作日、小时和分钟属性。我已经尝试过了,但是为了能够比较日期,我仍然必须操作NSDate
对象。
这些是我想出的解决方案。两者都需要大量的数学运算,并涉及大量如果、但是和可能。简单地拥有某种我可以做所有事情的“NSTime”对象真的很容易,但这并不(似乎)存在。
有没有其他人遇到过同样的问题并找到了更好的解决方案?