0

データベーステーブルから日付を取得しています。データベースから期限を取得しています。ここまではすべて適切です。現在の日付がデータベースからの期限と同じかそれ以上の場合は、この期限を現在の日付と比較する必要があります。 'Due'としてのセル

私はたくさん試しますが、私の問題は、文字列値がいくつかのウェアを示していて、コード内のmistackが何であるかを示していないことです。

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"dd/MM/yyyy"];

    NSString* duedate = [dateFormat stringFromDate:taskobject.DueDate];


    NSDate *currentdate;
    currentdate=[NSDate date];
    //NSDateFormatter *dateFormat1 = [[NSDateFormatter alloc] init];
    //[dateFormat1 setDateFormat:@"dd/MM/yyyy"];
    NSString* duedate1 = [dateFormat stringFromDate:currentdate];

    if ([currentdate compare:taskobject.DueDate]!=NSOrderedDescending) {
        DateLable.text=@"Due";
        DateLable.textColor=[UIColor redColor];
    }
    else{
        DateLable.text=duedate;
        DateLable.textColor=[UIColor blackColor];
    }
4

2 に答える 2

2
NSComparisonResult result = [currentdate compare: duedate];
if( result == NSOrderedDescending || result==NSOrderedSame) {
    // true when the dates are the same or the currentdate is later
} else {
   // true when the currentdate is earlier
}
于 2012-05-10T07:04:48.503 に答える
0

これは2つの日付を比較し、2つの日付に24時間の差があるかどうかを示し、timeIntervalSinceDate:lastLoadDateは秒の差を送信します。

double interval = [[NSDate date] timeIntervalSinceDate:lastLoadDate];
    if (interval > 86400 || interval < -86400 ) {
        return YES;   
    }
    else
    {
        enableButtons = YES;
        return NO;

    }

あなたの場合は

double interval = [dueDate timeIntervalSinceDate:currentDate];

if (interva >=0)
{   
    DateLable.text=@"Due";
    DateLable.textColor=[UIColor redColor];
}
else
{
    DateLable.text=duedate;
    DateLable.textColor=[UIColor blackColor];
}
于 2012-05-10T07:01:06.520 に答える