首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Objective-C中表示每小时的范围

在Objective-C中表示每小时的范围
EN

Stack Overflow用户
提问于 2011-04-14 04:33:36
回答 2查看 446关注 0票数 1

我正在尝试创建一个类来表示Obj-C程序中的操作小时数。我一直在考虑使用NSDatesComponent来做这件事,但我觉得应该有一种更简单的方法。对于如何做到这一点,有人有什么建议吗?

在核心数据中,我将有一个shop实体,它将具有一个数组的ivar。该数组每周的每一天都有七个条目,每一天的值都是一个表示小时范围的hoursOp对象。9-5,10-6,等等。问题是,我不确定如何创建我的hoursOp类来表示一个小时范围。我正在考虑使用NSDateComponents,但我不确定是否应该费心。目前,我认为hoursOp对象应该包含两个变量:开始时间和结束时间。

此外,由于一个数组条目中可能需要多个hoursOp对象,这就变得复杂了-如果一个shop的操作时间是10-4小时,那么6-8小时该怎么办?因此,它不是保存hoursOp对象的数组,而是一个二维数组,其中每个条目都是一个包含1个或多个hoursOp对象的数组。这有点令人费解,但我相信,一旦我弄清楚如何表示小时数(或者范围本身,如果有人有更好的建议),我就可以让它发挥作用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-30 05:09:52

这就是我最终要做的,只使用了NSDateNSDateFormatter,而open是在军事时间格式化的NSString

代码语言:javascript
复制
-(void) setOpeningTimeWithString: (NSString *)open
{
    NSDateFormatter * formatFromInput = [[NSDateFormatter alloc] init];
    [formatFromInput setDateFormat:@"HH:mm"];
    self.openingTime = [formatFromInput dateFromString:open];   
    [formatFromInput release];  
}

带给我们的教训是,在只设置每小时组件的情况下使用NSDate对象是完全可以的--其他所有内容都只设置为1970年1月1日,并且不会导致任何问题。

票数 0
EN

Stack Overflow用户

发布于 2011-04-14 07:51:27

很难说实现这一点的“最佳”方法,因为这取决于您对数据做了什么,但是如果您将星期几、打开时间和关闭时间存储在hoursOp对象中,那么您可以拥有一个hoursOp对象的一维数组,这些对象表示商店打开时的时间间隔。

您将失去数组索引和星期几之间的一对一关系,这可能会使一些任务变得更加困难(例如,如果您经常查询该对象的星期六存储时间,您将大量扫描整个数组),否则您将沿着拥有数组的路径前进。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5655266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档