时间差计算

//是不是过了指定的天数
- (BOOL) isAfterDays:(int) days {

    NSDate * sendDate = [NSDate date];
    NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSString * locationString = [dateFormatter stringFromDate:sendDate];
    
    NSString * lastShowTime = [[NSUserDefaults standardUserDefaults] objectForKey:@"lastShowTime"];
    if (lastShowTime == nil) {
        [[NSUserDefaults standardUserDefaults] setObject:locationString forKey:@"lastShowTime"];
    }
    else {
        NSString * string = [self intervalSinceNow:lastShowTime];
        int timeInterval = [string intValue];
        
        NSLog(@"Interval:%@",string);
        if (timeInterval >= days) {
            [self saveLastShowTime];
            return YES;
        }
    }
    
    return NO;
}

//存储本次提醒时间,以便下次计算下次提醒的时间
- (void) saveLastShowTime {
    NSDate * sendDate = [NSDate date];
    NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSString * locationString = [dateFormatter stringFromDate:sendDate];
    [[NSUserDefaults standardUserDefaults] setObject:locationString forKey:@"lastShowTime"];
}

#pragma mark 获取指定日期距离现在的时间段
- (NSString *)intervalSinceNow: (NSString *) theDate
{
    
    NSDateFormatter *date=[[NSDateFormatter alloc] init];
    [date setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSDate *d=[date dateFromString:theDate];
    
    NSTimeInterval late=[d timeIntervalSince1970]*1;
    
    
    NSDate* dat = [NSDate dateWithTimeIntervalSinceNow:0];
    NSTimeInterval now=[dat timeIntervalSince1970]*1;
    NSString *timeString=@"";
    
    NSTimeInterval cha=now-late;
    
    //**********
    timeString = [NSString stringWithFormat:@"%f", cha/86400];
    timeString = [timeString substringToIndex:timeString.length-7];
    timeString=[NSString stringWithFormat:@"%@", timeString];
    //*********
    
    return timeString;
}
原文地址:https://www.cnblogs.com/benbenzhu/p/3937960.html