为什么if
条件,比较两个日期时间,doens't工作? 如果他们需要成为NSDate
,我该如何转换它们?比较日期时间
代码:
if ([[NSDate date] dateStringFromFormat:@"dd/MM/yyyy HH:mm"] > [self.tfDatetime dateStringFromFormat:@"dd/MM/yyyy HH:mm"]) {
// Do ...something
}
为什么if
条件,比较两个日期时间,doens't工作? 如果他们需要成为NSDate
,我该如何转换它们?比较日期时间
代码:
if ([[NSDate date] dateStringFromFormat:@"dd/MM/yyyy HH:mm"] > [self.tfDatetime dateStringFromFormat:@"dd/MM/yyyy HH:mm"]) {
// Do ...something
}
要比较两个NSDates(比如,dateOne和dateTwo),使用此
switch ([dateOne compare:dateTwo]){
case NSOrderedAscending:
NSLog(@"NSOrderedAscending");
break;
case NSOrderedSame:
NSLog(@"NSOrderedSame");
break;
case NSOrderedDescending:
NSLog(@"NSOrderedDescending");
break;
}
有这个定义的方法。试试下面的代码做比较两个日期:)
switch ([[[NSDate date] dateStringFromFormat:@"dd/MM/yyyy HH:mm"] compare [self.tfDatetime dateStringFromFormat:@"dd/MM/yyyy HH:mm"]]){
case NSOrderedAscending:
NSLog(@"NSOrderedAscending");
break;
case NSOrderedSame:
NSLog(@"NSOrderedSame");
break;
case NSOrderedDescending:
NSLog(@"NSOrderedDescending");
break;
}
谢谢!有效!你现在怎么在'case'里添加'AlertView'?我得到错误“预期的表达式”。 – 2013-02-20 05:35:28
另一种方式来比较日期将检查2个日期之间的间隔是这样,if ([date1 timeIntervalSinceDate:date2] > 0)
。 date1
是最新的日期。
编辑:因为我比较2个NSDate
就像这个
向下投票将是无效的。
if ([[NSDate date] timeIntervalSinceDate:[NSDate date]])
{
// Do something
}
我没有收到任何错误。您正在比较2 NSString
这将是一个问题,因为没有这样的方法NSString
。
错误:'NSString'可能不会响应'timeIntervalSinceDate:' – 2013-02-20 05:39:59
你想比较2'NSString'还是2'NSDate'?你说你想比较'NSDate's。阅读课程参考资料。如果不理解所涉及的类和方法,请不要投票。 – esh 2013-02-20 05:45:05
在帖子后,我清楚,我试图比较两个'NSStrings',如果需要,我怎么可以将它们转换为'NSDate'。 – 2013-02-20 05:53:34
谢谢!有效!你现在怎么在'case'里添加'AlertView'?我得到错误“预期的表达式”。 – 2013-02-20 05:40:35
switch([dateOne compare:dateTwo]){ case NSOrderedAscending:{ UIAlertView * alertView = [[UIAlertView alloc] initWithTitle:title message:@“Alert”delegate:nil cancelButtonTitle:@“OK”otherButtonTitles:nil]; \t [alertView performSelectorOnMainThread:@selector(show)withObject:nil waitUntilDone:YES]; } } – Shashank 2013-02-20 05:49:35