Часы и минуты в часах с дробной частью - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть форма, которая рассчитывает часы и минуты от времени.Я хотел бы преобразовать результат в значение для расчета, как 1 час 30 минут результат 1,5.Теперь я получаю результат 1,3.Мне нужно рассчитать и записать его.

Я нашел несколько конвертеров, но в данный момент он не рассчитывается, поэтому он не подходит для того, что мне нужно.

Я также хочу, чтобы пользователь увиделчасы и минуты, как показывает мой код.Я знаю, что могу разделить секунды только с 0,6, но затем показать в опции выбора 0,25 вместо 0,15.Это не вариант.

  • Ura pričetka - время начала,
  • Ura končanja - время окончания,
  • Nadure - это просто вычисление значения по определенному значению,
  • Ure - результат, который необходимо рассчитать и преобразовать в данный момент

Я рассчитываю в 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 голосов
/ 30 ноября 2018

Одно предложение может быть:

    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?

Повторяющийся вопрос задан для этого расчета на Android.Он прекрасно работает на старых и новых устройствах Android.

  • В Java 8 и более поздних версиях и на более новых устройствах Android (начиная с уровня API 26) встроен современный API.
  • ВJava 6 и 7 получают ThreeTen Backport, бэкпорт новых классов (ThreeTen для JSR 310; см. Ссылки внизу).
  • На более старых версиях Android используется Android-версия ThreeTen Backport.Это называется ThreeTenABP.И убедитесь, что вы импортируете классы даты и времени из org.threeten.bp с подпакетами.

Ссылки

0 голосов
/ 30 ноября 2018

Чтобы преобразовать минуты в десятичные часы, вы просто поделите минуты на 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);
}
...