0

需要比较两个 NSDate 类型的变量。一个是当前日期,另一个是用户选择的日期。

用户选择日期:

UIDatePicker *datePicker;   // declared in h file

-(void)dateChange:(id)sender{
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"dd-MM-yyy"];
dateLabel.text = [NSString stringWithFormat:@"%@", [df stringFromDate:datePicker.date]];

userDebtInfo.duration = dateLabel.text;}

验证方法:

-(IBAction) validation:(id)sender{
NSDate *today = [NSDate date];

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
NSString *dateString = [dateFormat stringFromDate:today];

[dateFormat release];

 if ((userDebtInfo.debt_code == userTmp.debt_code) && ([userDebtInfo.duration compare:dateString]== NSOrderedDescending)))
            [bl updateUserMoneyValidation:userDebtInfo];  
 else
      [bl saveUserMoneyValidation:userDebtInfo];}

我已经测试并正在比较两个字符串。有人可以帮我就这种情况提供一些建议吗?我想比较所选日期是否在当前日期之后插入或更新数据库。

   谢谢!

4

2 回答 2

2

您可以使用 NSDate比较功能

if([firstDate compare:secondUpdate] == NSOrderedAscending){
       //This will return YES if secondUpdate is the recent date between the two dates
}

NSOrderedAscending 是 NSComparisonResult 的一个常量 以下是您可以比较的其他常量:

enum {
 NSOrderedAscending = -1,
 NSOrderedSame,
 NSOrderedDescending
};
typedef NSInteger NSComparisonResult;
于 2012-10-03T03:50:32.673 回答
1

如果您已经有两个 NSDate 类型的对象,则可以使用其中一种 NSDate 比较方法。例如[NSDate compare:]返回 a NSComparisonResult(这与返回的枚举相同[NSString compare:])。

于 2012-10-02T15:07:24.000 回答