Objective c 如何测试今天是否在特定日期之后?
在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
您的大多数代码都会获取过期日期,因此这并不重要 有了日期后,使用
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