2017-11-06 10 views
-1

私は2時間の差を計算しようとします。 私はこのコードを実装:2時間の差を計算します

changEndHour($event: any, i: number) { 
    var arrayControl = this.generalForm.get('hours') as FormArray; 
    let startHour = arrayControl.at(i).get('startHour').value, 
    startMin = arrayControl.at(i).get('startMin').value, 
    endMin = arrayControl.at(i).get('endMin').value, 
     endHour = $event.split(":"), date1 = new Date(), date2 = new Date(); 


     date1.setHours(startHour, startMin).toString(); 
     let d1=date1.setHours(startHour, startMin).toString(); 
     date2.setHours(endHour, endMin).toString(); 
     let d2=date2.setHours(endHour, endMin).toString(); 
     let hours = (Math.abs(date1.getTime() - date2.getTime())/1000/60/60).toFixed(2); 
     arrayControl.at(i).get('result').setValue(hours); 
    } 

私がテストしたときに、このコードは正しく結果を計算しません。 私は13:00 - 12:10を計算しようとしています。結果は0.83であり、間違っています。 コードを改善するにはどうすればよいですか?

答えて

0

コードは正常に動作します。結果は60分の割合です。したがって、次の計算を実行することにより、

60 * 0.83 = 49.8 

希望の結果を数分で得ることができます。

あなたの問題の解決策は以下のようになり

let result = str.split(".") 
console.log("Time difference is " + str[0] + " h, " + (60 * str[1]) + " min") 
+0

私は私が使用している理由時間の結果を表示する(相違//60/60 1000) – Hamdy

+0

何が正確に表示するようにしたいですか?あなたは私に例を挙げることができますか? –

+0

13:00 - 12:30 => 0時間30分 – Hamdy