0

我正在从数据库表中获取日期。我从数据库中获取到期日期,直到这里一切正常现在我必须将此到期日期与当前日期进行比较,如果当前日期大于或等于来自数据库的到期日期然后我想打印字符串单元格为“到期”

我尝试了很多,但我的问题是字符串值显示了一些 ware 而他们没有显示一些 ware 我的代码中的错误是什么。

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

这比较了两个日期并告诉两个日期是否有 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 回答