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

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา สอบถามเรื่องคำนวนครับ

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


Maxtri 124.122.132.xxx 18-11-2016 22:29:29

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

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


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


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1
 ลองโชว์โค้ดที่ดัดแปลง เผื่อแนะนำเพิ่มได้ ว่าทำไว้แบบไหน 


ninenik 1.47.103.xxx 18-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 124.122.132.xxx 18-11-2016 23: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 1.47.103.xxx 19-11-2016
 ความคิดเห็นที่ 4
ขอบคุณมากครับ
ผมจะเรียนรู้เพิ่มเติมเยอะๆเลยครับ


maxtri 124.122.132.xxx 19-11-2016 00:27
1






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ