Как конвертировать 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 секунды слишком часто).