我有日期类型的对象。

我想对它们进行比较,并以以下方式编写了if条件:

if (([startDate1 isEqualToDate:[self getDefaultDate]]) || (startDate1 != [ self getDefaultDate] && m_selectedDate >= m_currentDate1 && cycleStopped))
 {

///execute some condition

}

我在这种方法上是对还是错?

还有一件事。这样正确吗:
if (dtdate > [m_array objectatIndex:i]
{

}

因为我得到了随机的行为。

最佳答案

这是使用NSDate方法compare:的示例

if([startDate compare: endDate] == NSOrderedDescending) // if start is later in time than end
{
    // do something
}

从类引用:



例如,如果您想比较两个日期并找到它们之间的秒数,则也可以使用timeIntervalSinceDate:方法。

编辑:
if(([startDate1 compare:[self getDefaultDate]] == NSOrderedSame) || ([startDate1 compare: [self getDefaultDate]] != NSOrderedSame && (([m_selectedDate compare: m_currentDate1] == NSOrderedDescending) || [m_selectedDate compare: m_currentDate1] == NSOrderedSame) && cycleStopped))

关于ios - 如何比较 objective-c 中的两个NSDate对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8183472/

10-14 13:28