2012-04-16 117 views
0

我有一个循环,并在每个循环中获得应用程序运行的当前秒数,然后我想将此时间转换为多少天,小时和秒秒计算,但不是'实时'我需要能够自定义一天多少秒,我已经尝试过在SO和网络上的例子,但似乎没有在这里。我有一些定义秒到几天,几小时和几分钟(可定制的一天的长度)

#define DAY    1200 
#define HOUR   DAY/24 
#define MINUTE   HOUR/60 
#define SECOND   MINUTE/60 

所以在我的定义一天将持续1200秒。我已经然后一直试图经过秒转换成“我”秒

seconds_passed = fmodf(SECOND, (float)(GetTicks()/1000)); 

它返回SECOND等于什么(0.013889),但是每一个循环是一样的,它永远不会改变我的想法,我只想能够转换例如:1real第二次进入1.25fake秒钟,然后

Minute = (seconds_passed/MINUTE); 
seconds_passed = fmodf(seconds_passed, MINUTE); 

工作有多少(假)分,(假)小时,自应用程序启动(假的)日子已经过去了。

希望有道理,谢谢你的时间。

回答

1

由于您想定制一天中的秒数,所以您只需更改1秒的比例即可:1秒。

举例来说,如果你所做的是在一天的比例为1200秒:
1:72
是,对于通过你的一天每隔1秒,它是真正的72秒equivilent。

所以基本上你需要在你的程序中做的所有事情都是找到1秒到1秒的比率,乘以你的秒数来获得'假'秒,然后使用该值... The代码可能是这个样子:

// get the ratio second:fake_second 
#define REAL_DAY_SECONDS 86400 
int ratio = REAL_DAY_SECONDS/DAY; 

fake_to_real = fake_second*ratio; 
real_to_fake = real_second/ratio; 
+0

你的意思是1真正的第二== 72秒假货是 – Elgoog 2012-04-16 03:50:57

+0

(对不起误读您的评论),因为一个真正的一天有86400秒和你的假一天有1200,你能适应真假72天,这意味着比例是1:72 – Serdalis 2012-04-16 03:52:31

+0

哦对不起,我错过了 - 读你在说什么,谢谢,看起来我已经结束了它复杂化 – Elgoog 2012-04-16 03:54:57

相关问题