如何将浮点数转换为日期格式?

问题描述:

我有一个浮点值,我需要的是将我的浮点数转换为日期。例如,我有浮动50,55,我想穿上这样的标签值:50年6个月6小时6分30,04秒。如何将浮点数转换为日期格式?

我想知道如何让这个标签每0.01秒更改一次价值。请提供我解决方案将我的浮点值转换为日期格式,任何帮助将不胜感激。

这是我的代码用于创建我的浮动:

-(float)calculationResult{ 

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

    return lifeTime; 
} 
+1

你想要什么?浮点数不够精确。几年和几个月有不同的天数,没有人可以每秒看到100个值。请告诉我你不想每隔一秒钟显示一次。看看TimeSpan课程。 –

+0

我的浮点数是多少年,这可能是不够的?如果你的意思是假肢年,我想所有年份都是平等的,并且有365天 –

+0

@EvgeniyKleban:一秒钟是大约3e-08年,这超出了浮点精度,你至少需要一倍。 - 一个月有多少天需要计算? –

下面的代码拆分的“分数年”给定的数字为 年,月,日,小时。它做出了简化的假设:每年 有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秒是太频繁)。

+0

它的工作,非常感谢你。 –