我想比较两个日期并在一个日期小于或等于另一个日期时做某事,我尝试这样做:
if ([self.system.systemInbetriebnahme compare:date] == NSOrderedDescending)
return nil;
但这消除了当它们都相等时的情况有没有办法比较日期>=
?
谢谢
更多详细信息: 我有一个从二维数组中获取的日期,并且我有一个存储在核心数据中的日期(通过日期选择器),我通过一个循环将两个日期与以下规则进行比较:数组中的日期必须是大于或等于存储在数据库中的输入日期。
最新编辑:
我导入了一个 csv 文件,在解析和格式化后给了我两行(一行用于数值,一行用于日期)。在这里,我对日期感兴趣。
我将所有这些存储在一个数组中,并在检查此函数中数据的一致性后保存:
for (NSArray * row in array) { // Handle import if there are at least two rows if (row.count > 1) { dispatch_sync(dispatch_get_main_queue(), ^{ // Try to import value,date formatted row double value = [row[0] doubleValue]; NSDate * date = [dateFormatter dateFromString:row[1]]; //else { // Try to import date,value row if (date && value != 0.0) { [self addReading:value forDate:date]; }
在这里,我调用该函数
addreading
来检查某些规则的错误,如果一切正常,则保存 managedObject 上下文。if ([installationdatum compare:date] != NSOrderedAscending) { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@"installation date is bigger than data" delegate: nil cancelButtonTitle:@"OK" otherButtonTitles:nil] [alert show]; return nil; } else { //Do nothing }
我的一个规则是获取数组中的第一行元素并将其日期与已经存储在数据库中的输入进行比较,即
self.system.systemInbetriebnahme
毕竟,我在表格视图中列出了所有结果数组,尽管
NSOrderedSame
当它等于时永远不会显示值匹配self.system.systemInbetriebnahme