需要比较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];}
我已经测试并且正在比较两个字符串。有人可以帮我提一些关于这种情况的建议吗? 我想比较所选日期是否在当前日期之后插入或更新数据库。
谢谢!
答案 0 :(得分: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;
答案 1 :(得分:1)
如果您已经有两个NSDate类型的对象,则可以使用其中一种NSDate比较方法。例如[NSDate compare:]
返回NSComparisonResult
(这与[NSString compare:]
返回的枚举相同)。