我正在尝试强制用户使用日期选择器选择将来的日期。我显然使用了compare:方法,但是,当我执行以下代码时,即使日期与NSDate日期相同,它也会告诉执行if语句。下面是我的代码:
if ([datePicker.date compare:[NSDate date]] == NSOrderedAscending) // If the picked date is earlier than today
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Hmm, this date is earlier than today"
message:@"The date you've selected is earlier than today's date, please pick another"
delegate:nil
cancelButtonTitle:@"Okay, I'll pick another"
otherButtonTitles:nil];
// Show the alert
[alert show];
// Release the alert
[alert release];
}发布于 2010-02-14 03:32:20
我不知道你的问题的答案,但你怎么才能绕过它。
只需使用UIDatePicker的minimumDate属性,这甚至是一种更简洁的方法。
发布于 2010-02-14 03:22:55
您可以使用
[datePicker.date timeIntervalSinceNow]它返回一个NSTimeInterval (只是一个双精度的类型定义,以秒为单位),它对未来是积极的,对过去是消极的。
正如文档所说,compare提供亚秒级比较,因此您可以使用它来强制将他们的日期推迟一整天(而不仅仅是未来的某个时间)。
发布于 2010-02-14 03:28:13
NSDate对象同时包含日期和时间,因此有许多日期相同的日期可以在同一天的另一个日期之前或之后。
date类方法返回一个包含当前日期、日期和时间的date对象。
https://stackoverflow.com/questions/2258703
复制相似问题