Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Калькулятор времени - может кто видел? (https://javascript.ru/forum/dom-window/40758-kalkulyator-vremeni-mozhet-kto-videl.html)

lvovitch 19.08.2013 03:10

Калькулятор времени - может кто видел?
 
Может кто видел калькулятор времени?
есть время, которое выводится в полях. например время 22:34
есть поля:
<input type="text" name="hour" value="22">
<input type="text" name="min" value="34">
и есть поле куда вводятся корекция в минутах:
<input type="text" name="korr" value="-24">
Если введено -24, то время должно отображаться не 22:34, а 22:10.

Может кто видел такой скрипт???

ksa 19.08.2013 09:11

Цитата:

Сообщение от lvovitch
Может кто видел такой скрипт?

Дык
4-я ссылка...

lvovitch 19.08.2013 10:34

Цитата:

Сообщение от ksa (Сообщение 268119)

Спасибо БОЛЬШОЕ!!!

а я искал по запросу "javascript калькулятор времени" и ничего не нашел...

lvovitch 19.08.2013 13:31

Что бы не плодить темы спрошу тут:
нашел я подходящий скрипт здесь: http://www.o-o-d.com/timecalc.php

удалил все нужное. Вроде все работает.
Но есть одна проблема: если например время1 - 23:55, а я прибавляю к нему 55 минут, то вместо 0:50, я получаю 24:50. Как это можно исправить?
У автора, по ссылке выше, такая же ситуация. Вот мой код:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
  <HEAD>
    <TITLE>
      Калькулятор времени
    </TITLE>
    <META http-equiv="Cache-Control" content="no-cache">
    <LINK rel='stylesheet' type='text/css' href='css/format.css'>
  </HEAD>
  <BODY>
    <SCRIPT type="text/javascript" language="JavaScript">
var t=3;



    function getTimeFromString(str)
    {
       var h=str.substring(0,str.indexOf(":"));
       var m=str.substring(str.lastIndexOf(":")+1,str.length);
       return m*60+h*60*60;
    }



    function calc_up() {
    var time=[];
    var i=0;
    var s=0;

      for(i=1;i<t;i++)
    {
    time[i]=1*getTimeFromString(document.getElementById('t'+i).value);
    s+=time[i];
    }


    var ts=s;
    var new_ts=0;
    var tsstring="";
    while(ts>1000)
    {
    new_ts=Math.floor(ts/1000);
    tsstring=(ts-new_ts*1000)+" "+tsstring
    ts=new_ts;
    }


    var m=0;
    var h=0;
    if (s > 59) {
    m = Math.floor(s/60);
    s = s - m * 60;
    }
    if (m > 59) {
    h = Math.floor(m / 60);
    m = m - h * 60;
    }
    if (s < 10) {
    s = "0" + s;
    }
    if (m < 10) {
    m = "0" + m;
    }

    document.getElementById('tres').innerHTML=h+":"+m;

    return;

      }




         function calc_down() {
    var time=[];
    var i=0;
    var s=0;

      for(i=1;i<t;i++)
    {
    time[i]=1*getTimeFromString(document.getElementById('t_down'+i).value);
    s+=time[i];
    }


    var ts=s;
    var new_ts=0;
    var tsstring="";
    while(ts>1000)
    {
    new_ts=Math.floor(ts/1000);
    tsstring=(ts-new_ts*1000)+" "+tsstring
    ts=new_ts;
    }


    var m=0;
    var h=0;
    if (s > 59) {
    m = Math.floor(s/60);
    s = s - m * 60;
    }
    if (m > 59) {
    h = Math.floor(m / 60);
    m = m - h * 60;
    }
    if (s < 10) {
    s = "0" + s;
    }
    if (m < 10) {
    m = "0" + m;
    }

    document.getElementById('tres_down').innerHTML=h+":"+m;

    return;

      }





    </SCRIPT>

    <DIV align="center">
      <TABLE id="tab" border="0">
        <TR>
          <TD class='c' colspan="3">
            <b>ВВЕРХ</b>
          </TD>
        </TR>
        <TR>

          <TD>
            Время 1:
          </TD>
          <TD>
            <INPUT id="t1" maxlength="9" onkeyup="calc_up()" type="text" size="10" value="00:00">
          </TD>
        </TR>

        <TR>

          <TD>
            Время 2:
          </TD>
          <TD>
            <INPUT id="t2" maxlength="9" onkeyup="calc_up()" type="text" size="10" value="">

          </TD>
        </TR>
        <TR>
          <TD colspan="2">
            Результат:
          </TD>
          <TH>
            <DIV id="tres">
              0:00
            </DIV>

          </TH>
        </TR>

      </TABLE>
    </DIV>



            <br><br>




        <DIV align="center">
      <TABLE id="tab" border="0">
        <TR>
          <TD class='c' colspan="3">
            <b>ВНИЗ</b>
          </TD>
        </TR>
        <TR>

          <TD>
            Время 1:
          </TD>
          <TD>
            <INPUT id="t_down1" maxlength="9" onkeyup="calc_down()" type="text" size="10" value="00:00">
          </TD>
        </TR>

        <TR>

          <TD>
            Время 2:
          </TD>
          <TD>
            <INPUT id="t_down2" maxlength="9" onkeyup="calc_down()" type="text" size="10" value="">

          </TD>
        </TR>
        <TR>
          <TD colspan="2">
            Результат:
          </TD>
          <TH>
            <DIV id="tres_down">
              0:00
            </DIV>

          </TH>
        </TR>

      </TABLE>
    </DIV>
  </BODY>
</HTML>

ksa 19.08.2013 13:54

Цитата:

Сообщение от lvovitch
если например время1 - 23:55, а я прибавляю к нему 55 минут, то вместо 0:50, я получаю 24:50. Как это можно исправить?

Так пора писать свой калькулятор на основе того, что ты уже видел. :D

Kvark 19.08.2013 14:17

ну так а проверить не судьба что получилось после прибавки? и отминусовать если превышеает 23:59... :)

lvovitch 19.08.2013 19:16

Ура! Часть проблемы решено!!! Добавил в функцию:
if (h > 23) {
    h = "0";
    }

И все заработало.
а вот в "обратную сторону" - не пойму почему не работает. Написал так:
if (h < 0) {
    h = "23";
    }

рони 19.08.2013 21:00

lvovitch,
:-?
<!DOCTYPE HTML>
<html>
<head>
  <title>Untitled</title>
</head>

<body>
<input type="text" name="hour" value="23">
 <input type="text" name="min" value="55">
 <input type="text" name="korr" value="55">
 <input name="ok" type="button" value="ok">
<script>
var  hour = document.getElementsByName("hour")[0],
     min = document.getElementsByName("min")[0],
     korr = document.getElementsByName("korr")[0],
     ok = document.getElementsByName("ok")[0];
     ok.onclick = function ()
{
    var date = new Date();
    date.setHours(hour.value,((min.value|0)+(korr.value|0)),0,0);
    hour.value = date.getHours();
    min.value = date.getMinutes();
}
</script>
</body>
</html>


Часовой пояс GMT +3, время: 09:58.