Как получить продолжительность, как текстовый формат продолжительности карты Google в IOS? - PullRequest
0 голосов
/ 27 апреля 2018

Мне нужно преобразовать второе в нечто вроде следующего.

50 minutes
1 hour 40 minutes
1 day 2 hours 20 minutes

Я использую mapbox и получаю json в качестве ответа, где продолжительность дается в секундах. Как это:

duration:2263.1

Ответы [ 2 ]

0 голосов
/ 27 апреля 2018

Я ценю ответы выше. Но я искал что-то вроде ниже. Это решило мою проблему.

//convert to minute
    int minutes = [seconds doubleValue] / 60;

    //Convert to hours
    int hours = [seconds doubleValue] / (60 * 60);

    //Convert to days
    int days = [seconds doubleValue] / (60 * 60 * 24);

    if (days>=1)
    {
        return [NSString stringWithFormat:@"%d %@",days,days==1?@"day":@"days"];
    }
    else if (hours>=1)
    {
        return [NSString stringWithFormat:@"%d hours %d min",hours,minutes];
    }
    else
    {
        return [NSString stringWithFormat:@"%d min",minutes];
    }
0 голосов
/ 27 апреля 2018

Попробуйте это.

int time = timeFromApiInSeconds;
int minutes = (time / 60) % 60;
int hours = time / 3600;

    if (minutes == 0 && hours == 0){
       NSString *lblStr = [NSString stringWithFormat:@"%02d Seconds", time];
    }

    if (hours == 0){
         NSString *lblStr = [NSString stringWithFormat:@"%02d Minutes %02d Seconds", minutes,time];

    }

и так ..

Еще один способ сделать это.

   NSDate *startDate = [NSDate date];
    NSDate *endDate = [NSDate dateWithTimeInterval:(secondsFromApi) sinceDate:startDate];

    NSCalendar *gregorian = [[NSCalendar alloc]
                             initWithCalendarIdentifier:NSGregorianCalendar];

    NSUInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
    NSDateComponents *components = [gregorian components:unitFlags
                                                fromDate:startDate
                                                  toDate:endDate options:0];
    NSInteger years = [components year];
    NSInteger months = [components month];
    NSInteger days = [components day];
    NSInteger minuts = [components minute];
    NSLog(@"years = %ld months = %ld days = %ld = %02d Minutes",years,months,days, minuts);

Даже вы можете получить секунды в компонентах.

...