iOS 今天到目标时间的距离

+ (NSMutableDictionary *)time:(NSString *)timer
{
    NSDateFormatter *date = [[NSDateFormatter alloc]init];
    [date setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
    NSDate *today = [NSDate date];//当前时间
    NSDate *endD = [date dateFromString:timer];
    NSTimeInterval start = [today timeIntervalSince1970];
    NSTimeInterval end = [endD timeIntervalSince1970];
    NSTimeInterval value = end - start;
    //时间(秒)
    NSTimeInterval secondsPerDay = value;
    NSDate *time= [NSDate dateWithTimeIntervalSinceNow:secondsPerDay];
    
    //年
    NSDateFormatter *YFormatter = [[NSDateFormatter alloc] init];
    [YFormatter setDateStyle:NSDateFormatterShortStyle];
    [YFormatter setDateFormat:@"YYYY"];
    //月
    NSDateFormatter *Mformatter = [[NSDateFormatter alloc] init];
    [Mformatter setDateStyle:NSDateFormatterShortStyle];
    [Mformatter setDateFormat:@"MM"];
    //日
    NSDateFormatter *Dformatter = [[NSDateFormatter alloc] init];
    [Dformatter setDateStyle:NSDateFormatterShortStyle];
    [Dformatter setDateFormat:@"dd"];
    //时
    NSDateFormatter *Hformatter = [[NSDateFormatter alloc] init];
    [Hformatter setDateStyle:NSDateFormatterShortStyle];
    [Hformatter setDateFormat:@"HH"];
    //分
    NSDateFormatter *mformatter = [[NSDateFormatter alloc] init];
    [mformatter setDateStyle:NSDateFormatterShortStyle];
    [mformatter setDateFormat:@"mm"];
    //秒
    NSDateFormatter *sformatter = [[NSDateFormatter alloc] init];
    [sformatter setDateStyle:NSDateFormatterShortStyle];
    [sformatter setDateFormat:@"ss"];
    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSDateComponents *components = [[NSDateComponents alloc] init];
    
    [components setYear:[[YFormatter stringFromDate:time] integerValue]];
    [components setMonth:[[Mformatter stringFromDate:time] integerValue]];
    [components setDay:[[Dformatter stringFromDate:time] integerValue]];
    [components setHour:[[Hformatter stringFromDate:time] integerValue]];
    [components setMinute:[[mformatter stringFromDate:time] integerValue]];
    [components setSecond:[[sformatter stringFromDate:time] integerValue]];
    NSDate *fireDate = [calendar dateFromComponents:components];//目标时间
    unsigned int unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond;
    NSDateComponents *dates = [calendar components:unitFlags fromDate:today toDate:fireDate options:0];//计算时间差
    NSMutableDictionary *dict = [NSMutableDictionary dictionary];
    [dict setValue:[NSString stringWithFormat:@"%.2ld",(long)[dates year]] forKey:@"year"];
    [dict setValue:[NSString stringWithFormat:@"%.2ld",(long)[dates month]] forKey:@"month"];
    [dict setValue:[NSString stringWithFormat:@"%.2ld",(long)[dates day]] forKey:@"day"];
    [dict setValue:[NSString stringWithFormat:@"%.2ld",(long)[dates hour]] forKey:@"hour"];
    [dict setValue:[NSString stringWithFormat:@"%.2ld",(long)[dates minute]] forKey:@"minute"];
    [dict setValue:[NSString stringWithFormat:@"%.2ld",(long)[dates second]] forKey:@"second"];
    return dict;
}

返回的是dic字典,注意代码部分year代表年,依次类推

你可能感兴趣的:(iOS,开发小技巧)