iOS如何判断一个日期是否是今天,昨天,前天?

来源:互联网 发布:适用于mac电脑壁纸 编辑:程序博客网 时间:2024/05/04 03:35

在开发中我们经常需要判断一个时期是今天还是昨天,或者是之前的日子。代码如下:

//计算 距离现在的时间

-(NSString *)getUTCFormateDate:(NSDate *)newsDate

{



    NSString *dateContent;

    NSTimeInterval secondsPerDay =24 * 60 *60;

    NSDate *today=[[NSDatealloc] init];

    NSDate *yearsterDay =  [[NSDatealloc] initWithTimeIntervalSinceNow:-secondsPerDay];

    NSDate *qianToday =  [[NSDatealloc] initWithTimeIntervalSinceNow:-2*secondsPerDay];

    //假设这是你要比较的dateNSDate *yourDate = ……

    //日历

    NSCalendar* calendar = [NSCalendarcurrentCalendar];

    unsigned unitFlags =NSYearCalendarUnit | NSMonthCalendarUnitNSDayCalendarUnit;

    NSDateComponents* comp1 = [calendarcomponents:unitFlags fromDate:newsDate];

    NSDateComponents* comp2 = [calendarcomponents:unitFlags fromDate:yearsterDay];

    NSDateComponents* comp3 = [calendarcomponents:unitFlags fromDate:qianToday];

    NSDateComponents* comp4 = [calendarcomponents:unitFlags fromDate:today];

    if ( comp1.year == comp2.year && comp1.month == comp2.month && comp1.day == comp2.day) {

        dateContent = @"昨天";

    }

    elseif (comp1.year == comp3.year && comp1.month == comp3.month && comp1.day == comp3.day)

    {

        dateContent = @"前天";

    }

    elseif (comp1.year == comp4.year && comp1.month == comp4.month && comp1.day == comp4.day)

    {

        dateContent = @"今天";

    }

    else

    {

//返回0说明该日期不是今天、昨天、前天

        dateContent = @"0";

    }

    return dateContent;

}


0 0