PHP Ionic Angularjs Phonegap AJAX Javascript CSS MySQL jQuery Forum

สอบถามเรื่องคำนวนครับ

สอบถามเรื่องคำนวนครับ
คำนวนให้ได้ทั้ง ชั่วโมงและนาทีนะคับ
เช่น
0.20+0.40 จะได้ 1.00 ชั่วโมง อันนี้ตรงคับ
แต่ผมอยากจะคำนวนให้ได้ทั้งชั่วโมงและนาทีนะครับ
1.20+0.40 จะได้ 2.00 ชั่วโมง
ผมลองดัดแปลงแล้วแต่ยังไม่ได้เลยครับ
ช่วยแนะนำหน่อยนะครับ
ขอบคุนครับ

โดย:  Maxtri IP: 124.122.132.xxx วันที่: 18-11-2016 เวลา: 22:29:29

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ


  • ( หรือ สามารถทำการ สมัครสมาชิก และล็อกอิน ด้วย ปุ่ม Log in with Facebook ด้านล่าง )
 ความคิดเห็นที่ 4
ขอบคุณมากครับ
ผมจะเรียนรู้เพิ่มเติมเยอะๆเลยครับ


โดย:  Maxtri IP: 124.122.132.xxx วันที่: 19-11-2016 เวลา: 00:27:23
 ความคิดเห็นที่ 3
แนวคิด ให้ทำเวลาเป็นฐานที่เล็กที่สุดที่เหมาะสม ในที่นี้ก็จะเป็น นาที เช่น 1.20 ก็นคือ 60+20 นาที่ = 80 นาที
ทำแบบเดียวกันกับเวลาที่สอง เช่นเวลาที่สองเป็น 0.40 ก็เท่ากับ 40 นาที
บวกกับเวลาแรกจะได้ จะได้เวลารวมเป็น 80 + 40 เทากับ 120 นาที
ที่เหลือ คือแปลงค่ากลับเป็น  รูปแบบทศนิยม
แนวทางก็คือหาร 60 จะได้เลข หน้าทศนิยม 
mod หรือที่เรียกว่าหาเศษเหลือ ก็จะได้เป็น นาที
นำสองค่า มาบวกกัน จะได้จำนวนชั่วโมง และนาที



ดูตัวอย่างนี้เป็นแนวทาง

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
<script>
function makeminute(t){
  return (parseInt(t)*60)+parseFloat((t%1).toFixed(2))*100;
}
function maketimeval(a,b){
  var c = makeminute(a)+makeminute(b)
  var m = parseInt((c%60))*0.01;
  var h = parseInt((c/60));
  return parseFloat((h+m)).toFixed(2);
}
function calcdata(obj1,obj2,obj3){
  var a = parseFloat(document.getElementById(obj1).value);
  var b = parseFloat(document.getElementById(obj2).value);
  var calc_val = maketimeval(a,b);
  document.getElementById(obj3).value = isNaN(calc_val)?0.00:calc_val;
}  
</script>
  <input type="text" id="num_a" onkeyup="calcdata('num_a','num_b','num_c')"><br>
  <input type="text" id="num_b" onkeyup="calcdata('num_a','num_b','num_c')"><br>
  <input type="text" id="num_c">
  
</body>
</html>


Demo





โดย:  Ninenik IP: 1.47.103.xxx วันที่: 19-11-2016
 ความคิดเห็นที่ 2
<script type="text/javascript">
function sumTime(c){  
return (parseFloat((c%0.60).toFixed(0))+parseFloat((c%0.60).toFixed(2))).toFixed(1);
    function ting(){
        v1 = parseFloat(document.getElementById('ProductionTime1').value);
        v2 = parseFloat(document.getElementById('ProductionTime2').value);
        sume = v1+v2
        TotalProductionTime.value = sumTime(sume);
    }
</script>

แบบนี้ครับ
ผมคำนวนแล้วมันขึ้นไม่ตรงครับ
พอกดใส่ 1.20 + 0.40 มันต้องเป็น 2.00 ชั่วโมง
กลับเป็น 4.2 ชั่วโมง 
ผมลองดัดแปลงหมดแล้วครับ แต่ยังไม่ได้เลย
ผมเลยไม่เข้าใจว่าต้องเพิ่มหรือแทรกโค๊ดตรงส่วนไหนบ้างครับ
ช่วยแนะนำหน่อยครับ


โดย:  Maxtri IP: 124.122.132.xxx วันที่: 18-11-2016 เวลา: 23:23:01
 ความคิดเห็นที่ 1
 ลองโชว์โค้ดที่ดัดแปลง เผื่อแนะนำเพิ่มได้ ว่าทำไว้แบบไหน 

โดย:  Ninenik IP: 1.47.103.xxx วันที่: 18-11-2016