Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何测试今天是否在特定日期之后?_Objective C_Date_Nsdate - Fatal编程技术网

Objective c 如何测试今天是否在特定日期之后?

Objective c 如何测试今天是否在特定日期之后?,objective-c,date,nsdate,Objective C,Date,Nsdate,在Objective-C中,如何测试今天是否在特定日期之后 我正在使用下面的方法,但我很好奇是否有更好的方法或其他替代方法 您的大多数代码都会获取过期日期,因此这并不重要 有了日期后,使用laterDate:或compare:和[NSDate date]是两种简单的方法 你也可以这样做: if ([expirationDate timeIntervalSinceNow] > 0) { // expiration date is after "now" } 这避免了使用[NSDat

在Objective-C中,如何测试今天是否在特定日期之后

我正在使用下面的方法,但我很好奇是否有更好的方法或其他替代方法


您的大多数代码都会获取过期日期,因此这并不重要

有了日期后,使用
laterDate:
compare:
[NSDate date]
是两种简单的方法

你也可以这样做:

if ([expirationDate timeIntervalSinceNow] > 0) {
    // expiration date is after "now"
}

这避免了使用
[NSDate date]

作为替代方案的需要,有:

if ([today compare:expirationDate] == NSOrderedAscending)
    // expirationDate comes "after" today

if ([today compare:expirationDate] == NSOrderedDescending)
    // expirationDate comes "before" today

if ([today compare:expirationDate] == NSOrderedSame)
    // expirationDate equals today

差不多就是这样。有几种不同的方法来进行实际的比较,您可能不想以这种或那种方式篡改时间值,以便在比赛的整个一天与当前时间之间的比较是正确的或错误的。“今天平等”这很不可能发生,并且会产生误导。这意味着它们是同一天和同一时间。是的,布莱恩,你是对的(嗯,两个比较的日期实例是相同的)。让开发人员和其他可能从代码片段中获益的人自己决定它有多有用,好吗?巨魔…我喜欢这样一个事实,即没有必要再创建一个日期。谢谢
if ([today compare:expirationDate] == NSOrderedAscending)
    // expirationDate comes "after" today

if ([today compare:expirationDate] == NSOrderedDescending)
    // expirationDate comes "before" today

if ([today compare:expirationDate] == NSOrderedSame)
    // expirationDate equals today