Tahun baru, skill baru! 🚀. Masukkan kupon "skill2025" untuk diskon 30% di kelas apa saja

Perhitungan menggunakan javascript

Bagaimana melakukan perhitungan pengurangan antara finish dikurangi dengan start jika formatnya 21:30 - 08:00 Mohon bantuannya

<script>
function sum() {
      var txtFirstNumberValue = document.getElementById('emp_start').value;
      var txtSecondNumberValue = document.getElementById('emp_finish').value;
      var result = parseInt(txtSecondNumberValue) - parseInt(txtFirstNumberValue);
      if (!isNaN(result)) {
         document.getElementById('emp_total').value = result;
      }
}
</script>

avatar ilhamaswad
@ilhamaswad

25 Kontribusi 2 Poin

Diperbarui 8 tahun yang lalu

13 Jawaban:

Kalo jam mungkin bisa diubah ke menit dulu masing masing jamnya , untuk ambil nilainya bisa pake substring , untuk yang jam bisa dikali 60 dan menit tinggal ditambkahkan ke jamnya, untuk lalu hasil menitnya dikurangkan CMIIW Thanks

avatar dziem
@dziem

68 Kontribusi 43 Poin

Dipost 8 tahun yang lalu

dan kodenya mungkin seperti ini

<span id="test"></span>
<span> jam</span>
</br>
<span id="test2"></span>
<span> menit</span>
<script>
var x = "08.00";
var y = "21.30";
var jam_x = parseInt(x.substring(0,2)) * 60;
var jam_y = parseInt(y.substring(0,2)) * 60;
var menit_x = parseInt(x.substring(3,5));
var menit_y = parseInt(y.substring(3,5));
var hasil_x = jam_x + menit_x;
var hasil_y = jam_y + menit_y;
var selisih = hasil_y - hasil_x;
var jam = Math.floor(selisih / 60);
var menit = selisih - (jam * 60);
document.getElementById("test").innerHTML = jam;
document.getElementById("test2").innerHTML = menit;
</script>

CMIIW Thaks

avatar dziem
@dziem

68 Kontribusi 43 Poin

Dipost 8 tahun yang lalu

Kalau digabungin dengan script ini bagaimana yah gan, thanks

<style type="text/css">
#dis{
	display:none;
}
</style>

<script>
function sum() {
      var txtFirstNumberValue = document.getElementById('emp_start').value;
      var txtSecondNumberValue = document.getElementById('emp_finish').value;
      var result = (parseInt(txtSecondNumberValue) - parseInt(txtFirstNumberValue)) ;
      if (!isNaN(result)) {
         document.getElementById('emp_total').value = result;
      }
}
</script>

    <div id="dis">
    <!-- here message will be displayed -->
	</div>

	<form method='post' id='emp-SaveForm' action="#">

    <table class='table table-bordered'>

        <tr>
            <td>Shift</td>
            <td><select class="form-control" id="sel1" name='emp_shift' required>
            <option value=''>-- Choose Shift Category --</option>
            <option value='D'>D</option>
            <option value='E'>E</option>
            <option value='N'>N</option>
            <option value='OFF'>OFF</option>
            <option value='G'>G</option>
        </tr>

        <tr>
            <td>Start</td>
            <td><input type='text' name='emp_start' id='emp_start' onkeyup="sum();" class='form-control' required></td>
        </tr>

        <tr>
            <td>Finish</td>
            <td><input type='text' name='emp_finish' id='emp_finish' onkeyup="sum();" class='form-control' placeholder='' required></td>
        </tr>

        <tr>
            <td>Total</td>
            <td><input type='number' name='emp_total' id='emp_total' class='form-control' placeholder='' required></td>
        </tr>

        <tr>
            <td colspan="2">
            <button type="submit" class="btn btn-primary" name="btn-save" id="btn-save">
    		<span class="glyphicon glyphicon-plus"></span> Save this Record
			</button>
            </td>
        </tr>

    </table>
</form>
avatar ilhamaswad
@ilhamaswad

25 Kontribusi 2 Poin

Dipost 8 tahun yang lalu

hasil perhitunganya mau ditampilin dimana ? input yang total buat apa ?

avatar dziem
@dziem

68 Kontribusi 43 Poin

Dipost 8 tahun yang lalu

Hasil Perhitungan di tampilin di total gan, input total dibuat jadi input type agar bisa di edit lagi gan, tapi intinya hasil perhitungan itu dimunculin di total(emp_total)

avatar ilhamaswad
@ilhamaswad

25 Kontribusi 2 Poin

Dipost 8 tahun yang lalu

mungkin seperti ini

<script>
function sum() {
      var txtFirstNumberValue = document.getElementById('emp_start').value;
      var txtSecondNumberValue = document.getElementById('emp_finish').value;
      var jam_first = parseInt(txtFirstNumberValue.substring(0,2)) * 60;
      var jam_second = parseInt(txtSecondNumberValue.substring(0,2)) * 60;
      var menit_first = parseInt(txtFirstNumberValue.substring(3,5));
      var menit_second = parseInt(txtSecondNumberValue.substring(3,5));
      var hasil_first = jam_first + menit_first;
      var hasil_second = jam_second + menit_second;
      var selisih = hasil_second - hasil_first;
      var jam = Math.floor(selisih / 60);
      var menit = selisih - (jam * 60);
      if (!isNaN(result)) {
         document.getElementById('emp_total').value = jam + " jam" + menit + " menit";
      }
}
</script>

terus input resultnya bertipe text bukan number , jadinya

<input type='text' name='emp_total' id='emp_total' class='form-control' placeholder='' required>

CMIIW Thanks

avatar dziem
@dziem

68 Kontribusi 43 Poin

Dipost 8 tahun yang lalu

Maaf gan ko tidak keluar otomatis yah ?

<style type="text/css">
#dis{
	display:none;
}
</style>

<script>
function sum() {
      var txtFirstNumberValue = document.getElementById('emp_start').value;
      var txtSecondNumberValue = document.getElementById('emp_finish').value;
      var jam_first = parseInt(txtFirstNumberValue.substring(0,2)) * 60;
      var jam_second = parseInt(txtSecondNumberValue.substring(0,2)) * 60;
      var menit_first = parseInt(txtFirstNumberValue.substring(3,5));
      var menit_second = parseInt(txtSecondNumberValue.substring(3,5));
      var hasil_first = jam_first + menit_first;
      var hasil_second = jam_second + menit_second;
      var selisih = hasil_second - hasil_first;
      var jam = Math.floor(selisih / 60);
      var menit = selisih - (jam * 60);
      if (!isNaN(result)) {
         document.getElementById('emp_total').value = jam + " jam" + menit + " menit";
      }
}
</script>

    <div id="dis">
    <!-- here message will be displayed -->
	</div>

	<form method='post' id='emp-SaveForm' action="#">

    <table class='table table-bordered'>
        <tr>
            <td>Departement. / Section.</td>
            <td><select class="form-control" id="sel1" name='emp_dept' required >
            <option value=''>-- Choose Department --</option>
            <option value='OPR'>OPR</option>
            <option value='MTC'>MTC</option>
            <option value='QAC'>QAC</option>
            <option value='HRD'>HRD</option>
            <option value='HSE'>HSE</option>
            <option value='ITS'>ITS</option>
            <option value='TECHNICAL SERVICE'>TECHNICAL SERVICE</option>
            <option value='STORE & PURCHASE'>STORE & PURCHASE</option>
            <option value='WHS'>WHS</option>
            <option value='LOG'>LOG</option>
            <option value='FAC'>FAC</option>
            </select></td>
        </tr>
        <tr><td>Tgl. / Date</td><td><input type='date' name='date' class='form-control' required /></td></tr>
        <tr><td>Employee Number</td><td><input type='number' name='emp_no' class='form-control' placeholder='' required></td></tr>
        <tr><td>Name</td><td><input type='text' name='emp_name' class='form-control' placeholder='' required></td></tr>
        <tr>
            <td>Shift</td>
            <td><select class="form-control" id="sel1" name='emp_shift' required>
            <option value=''>-- Choose Shift Category --</option>
            <option value='D'>D</option>
            <option value='E'>E</option>
            <option value='N'>N</option>
            <option value='OFF'>OFF</option>
            <option value='G'>G</option>
        </tr>
        <tr>
            <td>Overtime Category</td>
            <td><select class="form-control" id="sel1" name='emp_cat' required>
            <option value=''>-- Choose Overtime Category --</option>
            <option value='GO'>General Overtime</option>
            <option value='HO'>Holiday Overtime</option>
            <option value='COG'>Call Out General</option>
            <option value='COH'>Call Out Holiday</option>
            </select></td>
        </tr>
        <tr>
            <td>Remark</td>
            <td><select class="form-control" id="sel1" name='emp_remark' required>
            <option value=''>-- Choose Remark --</option>
            <option value='A'>A = OT Due to reliever leave</option>
            <option value='B'>B = OT Due to reliever absent/sick</option>
            <option value='C'>C = OT Due to extra work</option>
            <option value='D'>D = OT Due to not enough persons</option>
            <option value='P'>P = Power Plant Project</option>
            <option value='R'>R = Retrofit Project</option>
            </select></td>
        </tr>
        <tr><td>Note</td><td><textarea type='text' rows="3" name='note' class='form-control'></textarea></td></tr>
        <tr><td>Start</td><td><input type='text' name='emp_start' id='emp_start' onkeyup="sum();" class='form-control' required></td>
        </tr>
        <tr><td>Finish</td><td><input type='text' name='emp_finish' id='emp_finish' onkeyup="sum();" class='form-control' placeholder='' required></td></tr>
        <tr><td>Total</td><td><input type='text' name='emp_total' id='emp_total' class='form-control' placeholder='' required></td>
        </tr>
        <tr>
            <td colspan="2">
            <button type="submit" class="btn btn-primary" name="btn-save" id="btn-save">
    		<span class="glyphicon glyphicon-plus"></span> Save this Record
			</button>
            </td>
        </tr>
    </table>
</form>

avatar ilhamaswad
@ilhamaswad

25 Kontribusi 2 Poin

Dipost 8 tahun yang lalu

kesalahan mas , maaf , disini kesalahanya

if (!isNaN(jam || menit)) {
         document.getElementById('emp_total').value = jam + " jam" + menit + " menit";
      }

CMIWW Thanks

avatar dziem
@dziem

68 Kontribusi 43 Poin

Dipost 8 tahun yang lalu

Kalo ngilangin kata2 jam dan menitnya bagaimana ya gan ?

avatar ilhamaswad
@ilhamaswad

25 Kontribusi 2 Poin

Dipost 8 tahun yang lalu

Maaf mas kalo formatnya total hasilnya kaya gini lagi bagaimana yah 15:30

avatar ilhamaswad
@ilhamaswad

25 Kontribusi 2 Poin

Dipost 8 tahun yang lalu

Jawaban Terpilih

coba seperti ini

if (!isNaN(jam || menit)) {
         document.getElementById('emp_total').value = jam + ":" + menit;
      }
avatar dziem
@dziem

68 Kontribusi 43 Poin

Dipost 8 tahun yang lalu

Gan bisa gak yah d javascript melakukan fungsi if, jadi jika memilih dropdown D,E,N nilai emp_total dikurangi 8, kalo memilih G dikurangi 9, thanks

avatar ilhamaswad
@ilhamaswad

25 Kontribusi 2 Poin

Dipost 8 tahun yang lalu

bisa , nanti yang dikurangi itu variabel selisihnya , kalo untuk sintaknya saya kurang tahu

avatar dziem
@dziem

68 Kontribusi 43 Poin

Dipost 8 tahun yang lalu

Login untuk ikut Jawaban