Как конвертировать float в формат даты?

У меня есть значение с плавающей запятой, что мне нужно, это конвертировать мой float в дату. Например, у меня есть число с плавающей точкой 50,55, я хочу поставить значение метки следующим образом: 50 лет 6 месяцев 6 часов 6 минут 30,04 сек.

И мне интересно, как заставить эту метку меняться каждые 0,01 секунды для значения изменения. Пожалуйста, предоставьте мне решение для преобразования моего значения с плавающей точкой в ​​формат даты, любая помощь будет оценена.

Это код, который я использую для создания моего float:

-(float)calculationResult{

    lifeTime = (kCountry +kEdu - kBirth - kSmo -kAlco+kDis+kHap+kDri+kMar)*kWei*kEnv*kSle;

    return lifeTime;
}

1 ответ

Решение

Следующий код разбивает заданное количество "дробных лет" на годы, месяц, дни и часы. Это делает упрощающие предположения, что каждый год имеет 365 дней, и что один месяц составляет ровно 1/12 года.

float tmp = lifeTime;
int years = tmp;
tmp =  (tmp - years) * 12.;
int months = tmp;
tmp = (tmp - months) * 365./12.;
int days = tmp;
tmp = (tmp - days) * 24.;
int hours = tmp;

NSString *str = [NSString stringWithFormat:@"%d years %d month %d days %d hours ",
                 years, months, days, hours];

Чтобы регулярно обновлять ярлык, вы можете использовать NSTimer класс (но обновление каждые 1/100 секунды слишком часто).

Другие вопросы по тегам