小时和分钟到小时的数值,用小数部分表示

时间:2018-11-30 09:02:46

标签: java date hour minute

我有一个表格,可以计算到时间之间的小时和分钟。我想将结果转换为用于计算的值,例如1小时30分钟就是结果1,5。现在我得到结果1,3。我现在需要计算并编写出来。

我找到了一些转换器,但目前无法计算,因此它对我的需求不利。

我还希望用户看到我的代码显示的小时和分钟。我知道我只能用0.6分割秒数,然后在选择选项0,25中显示,而不是0,15。那不是一个选择。

  • Urapričetka-开始时间,
  • Urakončanja-结束时间,
  • Nadure-它只是在某个值上计算值,
  • 曾经-必须立即计算并转换结果

我正在用Java计算。

代码:

 <td align="left">Ure </td>
            <td align="left"><input name="ure" id="ure" type="text" onchange="updatesum()"/></td>
          </tr>
          <tr>
            <th align="right">Ura pričetka </th>
            <td align="left"><select name="urap" id="urap" type= "time" onChange="updatesum()" value="9.00"/>
            <OPTION>
            <?php for($hours=0; $hours<24; $hours++) // the interval for hours is '1'
    for($mins=0; $mins<60; $mins+=15) // the interval for mins is '15'

        echo '<option>'.str_pad($hours,2,'0',STR_PAD_LEFT).'.'
                       .str_pad($mins,2,'0',STR_PAD_LEFT).'
                       </option>'; ?></OPTION></td>
            <td align="left">Nadure </td>
            <td align="left"><input name="nadure" id="nadure" type="text" onchange="updatesum()"  /></td>
          </tr>

          <tr>
            <th align="right">Ura končanja </th>

            <td align="left"><select name="urak" id="urak" type= "time" onChange="updatesum()" value=""/>

            <OPTION>

            <?php for($hours=0; $hours<24; $hours++) // the interval for hours is '1'
    for($mins=0; $mins<60; $mins+=15)  
     // the interval for mins is '15'

        echo '<option>'.str_pad($hours,2,'0',STR_PAD_LEFT).'.'
                       .str_pad($mins ,2,'0',STR_PAD_RIGHT).'
                       </option>';                    
                       ?>
            </OPTION>     
            </td> 




       <script type="text/javascript">

       function updatesum() {


document.loginForm.ures.value = (document.loginForm.urak.value -0) - (document.loginForm.urap.value -0);
$ures = loginForm.ures.value;
if (loginForm.ures.value > <?php echo $test ?>) {
  loginForm.ure.value ='<?php echo $test ?>'
  loginForm.nadure.value = (document.loginForm.ures.value -0) - (document.loginForm.ure.value -0);
}

if (loginForm.ures.value <= <?php echo $test ?>) {
  loginForm.ure.value = loginForm.ures.value
  loginForm.nadure.value = (document.loginForm.ures.value -0) - (document.loginForm.ure.value -0);
}

};

</script>

            <input type="text" name="ures" onChange="updatesum()"/>

2 个答案:

答案 0 :(得分:1)

一个建议可能是:

    String startTimeString = "08:30";
    String endTimeString = "10:00";

    LocalTime startTime = LocalTime.parse(startTimeString);
    LocalTime endTime = LocalTime.parse(endTimeString);
    long totalMinutes = ChronoUnit.MINUTES.between(startTime, endTime);
    double hours = (double) totalMinutes / (double) Duration.ofHours(1).toMinutes();
    System.out.println("Hours between start and end: " + hours);

此代码段的输出为:

  

开始和结束之间的时间:1.5

我可以在Android上使用它吗?

A duplicate question要求在Android上进行此计算。它可以在较新的Android设备上很好地工作。

  • 在Java 8和更高版本以及更新的Android设备(API级别26以上)中,内置了现代API。
  • 在Java 6和7中,获得ThreeTen Backport,即新类的backport(JSR 310的ThreeTen;请参见底部的链接)。
  • 在(较旧的)Android上,使用Android版本的ThreeTen Backport。叫做ThreeTenABP。并确保您使用子包从org.threeten.bp导入日期和时间类。

链接

答案 1 :(得分:0)

要将分钟转换为小数点钟,您只需将分钟数除以60

例如1:30 = 1 +(30/60)= 1.5

或:15 = 15/60 = 0.25

public static double methodName(int hours, int minutes) {
   return hours + (minutes / 60);
}