在 NSArray 中查找具有给定时间(例如晚上 8 点)之后的某个时间的 NSDate?

发布于 2024-10-24 22:32:44 字数 245 浏览 0 评论 0原文

Objective-C 中是否有一种快速方法可以识别 NSArray 中的 NSDate 在给定时间(例如晚上 8 点)之后的某个时间?

除了手动遍历数组中的每个 NSDate 然后使用 NSDateComponents 来分解小时/分钟/秒之外,我看不到任何东西......甚至不确定是否有一种简单的方法可以从 NSDate 中获取时间代表 24 小时一小部分的时尚,因为这可能会有所帮助。 (例如,在这种情况下,下午 6 点将是 18/24 = 0.75)

Is there a quick way in Objective-C of identifying NSDate's in an NSArray that have a time of day after a given time (e.g. 8pm)?

I can't quite see anyway other than manually walking through each NSDate in the array and then using NSDateComponents to break out the hour/minute/second...Not even sure if there is a simple way to get the time from an NSDate in a fashion that represents a fraction of 24hours, as this might help a little. (e.g. 6pm would be 18/24 = 0.75 in this case)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

二货你真萌 2024-10-31 22:32:44

无需中断 NSDateComponents

NSTimeInterval interval = [date1 timeIntervalSinceDate:date2];
if (interval > 0) {
    // date2 is earlier
} else {
    // date1 is earlier
}

现在您可以用 date2 表示您的目标时间(例如晚上 8 点),并将数组的所有日期与该时间进行比较。

There is no need to break in NSDateComponents.

NSTimeInterval interval = [date1 timeIntervalSinceDate:date2];
if (interval > 0) {
    // date2 is earlier
} else {
    // date1 is earlier
}

Now you can represent your target time(8 P.M., for example) with date2 and compare all dates of array with that.

半边脸i 2024-10-31 22:32:44

我自己没有尝试过,但我想这

- (NSArray *)filteredArrayUsingPredicate:(NSPredicate *)predicate

就是您正在寻找的。

Haven't tried this myself, but I guess

- (NSArray *)filteredArrayUsingPredicate:(NSPredicate *)predicate

is what you're looking for.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文