Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Math 将表示时间的十进制数转换为小时、分钟、秒_Math_Date_Time - Fatal编程技术网

Math 将表示时间的十进制数转换为小时、分钟、秒

Math 将表示时间的十进制数转换为小时、分钟、秒,math,date,time,Math,Date,Time,我有一个小数点。此小数的范围介于0和23.999999之间。这个小数代表一个时间。例如,如果小数点为0.25,则它表示的时间为12:15 AM。如果小数点为23.50,则表示的时间为晚上11:30 我有三个变量: -小时数 -会议记录 -秒 使用这个小数点,我如何填写小时,分钟,和秒值?小时应该很简单 1小时内有60分钟,所以取小数部分,乘以60,取整数。再取一次小数,再乘以60,你就有秒了 例如,让我们以数字20.38490 我们知道现在是20小时,或者晚上8点 这就给我们留下了编号.3849

我有一个小数点。此小数的范围介于0和23.999999之间。这个小数代表一个时间。例如,如果小数点为0.25,则它表示的时间为12:15 AM。如果小数点为23.50,则表示的时间为晚上11:30

我有三个变量: -小时数 -会议记录 -秒


使用这个小数点,我如何填写
小时
分钟
,和
值?

小时应该很简单

1小时内有60分钟,所以取小数部分,乘以60,取整数。再取一次小数,再乘以60,你就有秒了

例如,让我们以数字
20.38490

我们知道现在是20小时,或者晚上8点

这就给我们留下了编号
.38490

乘以60,我们得到23.094分钟


.094
乘以60,我们得到5秒。

好吧,这里有一个C#的答案,但在大多数语言中,这通常是相同的想法:

int hours = (int)hoursDecimal;
decimal minutesDecimal = ((hoursDecimal - hours) * 60);
int minutes = (int)minutesDecimal;
int seconds = (int)((minutesDecimal - minutes) * 60);

无论使用哪种语言,都可以使用数学函数:MOD和FLOOR/TRUNC

设“dec”为十进制变量

trunc(mod(dec, 1)) => hours
trunc(mod(dec * 60, 60)) => minutes
trunc(mod(dec * 3600, 60)) => seconds
在C#中,您可以使用显式转换将十进制截断为int,例如

int seconds = (int) ((dec * 3600) % 60)

您可以使用floor功能去掉小时数,将分钟数和秒数保留为小时数的一小部分。然后,您可以再次使用楼层功能,在不到一个小时的时间内,去掉这些小步舞曲。然后剩下秒(以小时的分数表示)

下面是一个打印小时和分钟的简单示例,日出是从午夜开始的小数小时

printf( "sunrise %ld:%ld, \n", 
             (long)floor( sunrise ),
                 (long)(floor( sunrise * 60 ) - 60 * floor( sunrise )) );

从用户名判断,可能是一种.NET语言:Pint seconds=(minutesadecimal-minutesasantin)*60?将int转换为整数不会对小时部分进行取整,如果剩余部分为>,则会给出错误的结果。5@DavidB到
int
的转换总是向下舍入,而不是向上舍入。我在vb中使用了Cint,它的行为不是这样的,所以它们一定不同于上面提到的!