我正在编写一个程序来计算小时和分钟之间的角度,小时和秒,分钟和秒。
我写了我的代码,但无论我多少改变我的计算,我仍然无法得到本文想要的答案..
我使用了双
//I did this to calculate the minute angle precisely since I assume
//the second hand is also moving and it affects 1degree when it moves to 60..
angleminute=((6.0*minutes)+((1/60.0)*seconds));
//Also this to calculate the hour angle, the normal formula is 0.5*minutes
//but i also added the "seconds/60" for more accuracy
anglehour=((30.0*hour12)+(0.5*((seconds/60)+minutes)))
anglesecond=(6.0*seconds) //this is to calculate the second hand angle...
现在当我发现这些角度之间的差异时,我会得到不同的结果......
时间 11:54:29 这里有我的结果
Hour-minute= 32.52
Minute-second= 150.48
Second-hour=177.00
但预期的结果是:
Hour-minute=30.34
Minute-second= 152.90
Second-hour=176.76
他是如何得到这些结果的?我也试过使用常规方法,但仍然无法获得相同的结果。许多公式但仍然无法得到相同的答案...
angleminute=6*minutes
anglehour=30*hour+0.5*minutes
anglesecond=6*seconds
答案 0 :(得分:3)
您的angleminute
计算错误。它每分钟移动6度,但每秒钟是1/60分钟,所以每秒移动1/60 * 6度,而不是1/60度。
此外,minutes
,seconds
,hour
的类型是什么?如果它们是int
,那么还有另一个问题:在anglehour
的计算中,(seconds/60)
将是整数除法,并将以0
形式出现。您需要(seconds/60.0)
。