2012-05-10 8 views
0

データベースから日付を取得しています。データベースから引き出されて、ここまでのすべてが適切です。 現在の日付が現在の日付よりも私は、セルの文字列を印刷するWANY、データベースから来ていると等しく、その後duedate私は多くのことをしようとしたが、私の問題は、文字列値は、いくつかの陶器を示すことで、彼らがmistack何であるか、いくつかの陶器 を示していない「ため」iphoneの印刷文字列に2つの日付の値を一致させる方法

として私のコード。

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) { 
     [email protected]"Due"; 
     DateLable.textColor=[UIColor redColor]; 
    } 
    else{ 
     DateLable.text=duedate; 
     DateLable.textColor=[UIColor blackColor]; 
    } 

答えて

0

このcomparesa二つの日付と二つの日付、 timeIntervalSinceDateで24時間の差があると伝えます: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) 
{ 
    [email protected]"Due"; 
    DateLable.textColor=[UIColor redColor]; 
} 
else 
{ 
    DateLable.text=duedate; 
    DateLable.textColor=[UIColor blackColor]; 
} 
+0

になります(その日すなわち長い* * 86400秒ではありません) 。 'NSCalendar'と' NSDateComponents'を見て、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 
} 
関連する問題