JavaScript (с использованием C #) - PullRequest
0 голосов
/ 17 апреля 2011

Я хочу найти разницу между двумя временными компонентами, но я не получаю то, что хочу!

У меня есть 2 раскрывающихся списка компонентов в форме,

вот мой код:

input set 1:
timefrm_ 4 -> 18:00  
timeto_4 -->  23: 00

input set 2 : 
timefrm_ 4 -> 23:00

timeto_4 --> 01 : 00

Код JavaScript:

function time_diif4()
{
 var timespan4from = HMStoSec1(timefrm_4);

 var timespan4to = HMStoSec1(timeto_4);

 var timespan_4 =  timespan4to - timespan4from ;

 var diff4 = convertMinutes(timespan_4);


               alert(timespan4from);
               alert(timespan4to);
               alert(timespan_4);
               alert(diff4);
}


var secondsPerMinute = 60;

var minutesPerHour = 60;

function HMStoSec1(T) 
   { 
// h:m:s

  var A = T.split(/\D+/) ; 

  return ((A[0]*60 + +A[1])*60 ) 

    }

function convertMinutes(intSeconds) 
{
return Math.floor(intSeconds/secondsPerMinute);
}

мой вывод (как предупреждение):

для набора ввода 1:

64800 (в секундах)

82800 (в секундах)

18000 (в секундах)

300 (в минутах) --- 5 часов (18:00) до 23:00)

для набора ввода 2:

82800

5400

-77400 (ошибка должна быть на следующий день)

-1290

1 Ответ

0 голосов
/ 17 апреля 2011

просто найдите оставшееся значение в делении на дневные минуты.

function convertMinutes(intSeconds) { 
   var result = Math.floor(intSeconds/secondsPerMinute); 
   while(result < 0)
      result = result + minutesPerHour * 24;

   return result;
}

, если время начала больше времени окончания, то это означает, что время окончания относится к следующему дню.этот код решит эту проблему.но если вы не хотите, чтобы это происходило, вы должны запретить пользователю выбирать эти данные.

...