私は2つの日付を比較し、一方が他方よりも小さいか等しい場合に何かをしたいので、このようにしようとしました:
if ([self.system.systemInbetriebnahme compare:date] == NSOrderedDescending)
return nil;
しかし、これにより、両方が等しい場合が削除されます。日付を比較する方法はあり>=
ますか?
ありがとうございました
詳細: 2 次元配列から取得した日付があり、(日付ピッカーを介して) コア データに日付が格納されています。ループを実行して、次のルールで 2 つの日付を比較します。データベースに格納されている入力日付以上。
最新の編集:
解析とフォーマット後に2つの行(数値用と日付用)が得られる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 }
私にとっての 1 つのルールは、配列の最初の行要素を取得し、その日付をデータベースに既に格納されている入力と比較することです。
self.system.systemInbetriebnahme
NSOrderedSame
このすべての後、結果の配列をすべてテーブルビューにリストしますが、値が等しい場合、値の一致は表示されませんself.system.systemInbetriebnahme