LINUX.ORG.RU

Арифметические операции с отрезками времени

 ,


0

2

Подскажите библиотеку, которая бы позволяла осуществлять арифметические операции с отрезками времени формата часы:минуты:секунды.

Например:

a = '00:30:22';
b = '01:10:03';
console.log(a+b);

>> 01:40:25


Сделай функции сборки и разборки таких строк на секунды и работай с секундами.

arturpub ★★
()

str1="10:20:30"
str2="10:30:40"

f=function(str1, str2, operation){
var oper=new Function("x, y", "return +x"+operation+"(+y)")
var arr1=str1.split(":"), arr2=str2.split(":"), result=[]
for(var i = 0; i<arr1.length; i++){
   result.push(oper(arr1[i], arr2[i]))
}
return result.join(":")
}

console.log(f(str1, str2, "+"))
// 20:50:70

Вроде работает, но толком не тестил.

anonimous
()

Лови аццкую библиотеку:

TimeSpan = function(origin) {
  var value = function(origin) {
    switch(typeof origin) {
      case "string":
        return origin.split(':').reduce(function(prev, curr, index) {
          return prev + parseInt(curr) * Math.pow(60, 2 - index);
        }, 0);
        break;
      case "number":
        return parseInt(origin);
        break;
      default: throw 'Fuck off!';
    };
  }(origin);

  this.valueOf = function() {
    return value;
  }; 

  this.toString = function() {
    var hours   = parseInt(value / 3600) % 24;
    var minutes = parseInt(value / 60) % 60;
    var seconds = value % 60;

    return (hours < 10 ? '0' + hours : hours) + ':' + (minutes < 10 ? '0' + minutes : minutes) + ':' + (seconds  < 10 ? '0' + seconds : seconds);
  }
}

Пример:

t1 = new TimeSpan('00:30:22');
t2 = new TimeSpan('01:10:03');
console.log((new TimeSpan(t1 + t2)).toString()); // "01:40:25"
Apple-ch ★★
()

strptime strftime

anonymous
()
Ответ на: комментарий от Eddy_Em

указатели с модификаторами гораздо понятнее, ага

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.