0

NSDate 型の 2 つの変数を比較する必要があります。1 つは現在の日付で、もう 1 つはユーザーが選択した日付です。

ユーザーは日付を選択します:

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];}

私はテストし、2 つの文字列を比較しています。どなたか、この状態についてアドバイスをいただけないでしょうか。データベースを挿入または更新するために、選択した日付が現在の日付よりも後かどうかを比較したい。

   ありがとうございました!

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 型のオブジェクトが既に 2 つある場合は、NSDate 比較メソッドのいずれかを使用できます。たとえば、[NSDate compare:]これは a を返しますNSComparisonResult(これは によって返されるものと同じ列挙型[NSString compare:]です)。

于 2012-10-02T15:07:24.000 に答える