gpt4 book ai didi

objective-c - 在 Objective-C 中比较两次的最好/最简单的方法是什么?

转载 作者:搜寻专家 更新时间:2023-10-30 19:51:35 24 4
gpt4 key购买 nike

我有一个表示时间的字符串,例如“11:13 AM”。这是使用 NSDateFormatter 和 stringFromDate: 方法生成的。

我想将这个时间与当前时间进行比较,但是当我使用 dateFromString: 方法将字符串转回日期时,会添加年、月和日——这是我不想要的。我只需要知道现在是 < 还是 > 存储在字符串中的时间。

处理该问题的最佳方法是什么?预先感谢您的帮助。

最佳答案

不使用字符串表示,而是使用从选择器获得的 NSDate。您可以使用 NSDateComponents 转换小时/分钟/秒,然后也将 [NSDate date] 转换为 NSDateComponents。比较两组组件的小时/分钟/秒。

EDIT -- 将 NSDate 的 hr/min/sec 组件转换为 secondsOfTheDay(自午夜以来的秒数)这样的实用函数。

您可以直接使用两个时间值,因为它们都是自午夜以来的秒数。简单的整数可以很容易地进行比较、存储和操作。你不必一直使用 NSDate。

//----------------------------------------------------------------------------
// extracts hour/minutes/seconds from NSDate, converts to seconds since midnight
//----------------------------------------------------------------------------
unsigned secondOfTheDay( NSDate* time )
{
NSCalendar* curCalendar = [NSCalendar currentCalendar];
const unsigned units = NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents* comps = [curCalendar components:units fromDate:time];
int hour = [comps hour];
int min = [comps minute];
int sec = [comps second];

return ((hour * 60) + min) * 60 + sec;
}

关于objective-c - 在 Objective-C 中比较两次的最好/最简单的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2804804/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com