使用 NSDate 根据一周中的一般日期计算时间

Posted

技术标签:

【中文标题】使用 NSDate 根据一周中的一般日期计算时间【英文标题】:Calculating times based on generic days of the week using NSDate 【发布时间】:2010-07-06 13:21:18 【问题描述】:

我试图弄清楚如何根据它们通常的表达方式来计算开店时间。例如:周一至周五,上午 9 点至下午 6 点。我想从这个标准中知道两件事。商店开门了吗?如果是多长时间会关闭?

我对文档的困惑是 NSDate 计算需要唯一的日期数据集来执行如上所述的非通用计算。例如,NSDate 预计 2010-07-12T09:00:00Z 和 2010-07-12T18:00:00Z 将形成计算的开始基础,并且对于两者之间的日子也是如此。

我是否需要在此基础上创建一个年份的数据集来计算结果?或者有没有一种聪明的方法可以让 NSCalendar / NSDateComponents 为我完成所有这些艰苦的工作?

【问题讨论】:

【参考方案1】:

没有简单/自动的方法。您必须自己解析字符串,形成两个,比如说 startDate 和 endDate (或类似的东西)。您可以从中提取星期几和时间(这就是 NSCalendar 和 NSDateComponents 派上用场的地方)。

【讨论】:

谢谢。我发现了这一点,一旦按照您的建议将数据分解为开始日期和结束日期,就相对简单了。

以上是关于使用 NSDate 根据一周中的一般日期计算时间的主要内容,如果未能解决你的问题,请参考以下文章

如何在 oracle 中计算工作日,不包括一周中的任何特定日期?

如何在 Objective-C 中的特殊日期获得一周中的星期一?

如何检查日期是不是是 MySQL 中一周中的特定日期?

Dijit DateTextBox 上的限制 [一周中的有效日期]

如何使用 date-fns 找到一周中最近的一天

如何获取特定月份的每个星期四或一周中的其他日期的日期?