Hallo! Selamat Datang di Marketplace produk digital, Freelancer terbaik di indonesia (67505 Members, 783 Products, 5291 Topic, 12956 Comments)

pembuatan penghitungan tanggal hari libur dan libur nasional

Dibuat
Login Terakhir 4 Bulan lalu,
Telah Dilihat 8459 Kali
DOKO_HERDIAN Mengatakan : Sultan Account
  1. kira-kira utuk mengganti tanggal biar tidak terpaku pada hari ini gmn yah master?
  2. udah dicoba tetep gagal..intinya bisa digunakan untuk tanggal tertentu sesuai kemauan
  3.  
  4. <?php
  5. echo "<b>PROGRAM LIAT HARI n HARI LAGI</b><br>";
  6. echo "<b>Hari Libur (minggu,Lib Nas) tidak dihitung</b><br>";
  7.  
  8. function hitungcuti($tgla,$nextday,$delimiter) {
  9.  
  10. $hari = 3;
  11. $waktu = $hari * 2;
  12. $libnas= array("24-09-2017","25-09-2017");
  13. for ($i=0; $i <= $waktu; $i++) {
  14. $tgl =mktime(0,0,0,date("n"),date("j")+ $i,date("Y"));
  15. // Cek hari libur nasional
  16. foreach($libnas as $indeks => $tgl_libnas) {
  17. if ($tgl_libnas== date('d-m-Y', $tgl)) {
  18. $jum_libnas++;}
  19. }
  20. // Hitung hari minggu
  21. if (date("l", $tgl)=="Sunday") {
  22. $jum_minggu++;}
  23. else {
  24. // Hitung hari
  25. if
  26. ($jum_hari==$hari) {
  27. break;
  28. }
  29. else {$jum_hari++;
  30. }
  31. }
  32. }
  33. $jumhari = $jum_hari + $jum_libnas + $jum_minggu;
  34. $nextday = mktime(0,0,0,date("n"),date("j")+$jumhari,date("Y"));
  35. echo "Tanggal Untuk $hari hari kedepan = ".
  36. date('l d-m-Y', $nextday);
  37. ?>
  38.  
  39.  

Ada 8 Jawaban

PHPMU.COM Support
commented on 26 Sep 2017 08:18:54
  1. Kenapa gak pake yang pada topic sebelumnya saja mas, disana tinggal set tanggal mulai saja :
  2.  
  3. <?php
  4. function selisihHari($tglAwal, $tglAkhir){
  5. // list tanggal merah selain hari minggu
  6. $tglLibur = Array("2013-01-04", "2013-01-05", "2013-01-17");
  7.  
  8. $pecah1 = explode("-", $tglAwal);
  9. $date1 = $pecah1[2];
  10. $month1 = $pecah1[1];
  11. $year1 = $pecah1[0];
  12.  
  13. // memecah string tanggal akhir untuk mendapatkan
  14. // tanggal, bulan, tahun
  15. $pecah2 = explode("-", $tglAkhir);
  16. $date2 = $pecah2[2];
  17. $month2 = $pecah2[1];
  18. $year2 = $pecah2[0];
  19.  
  20. // mencari selisih hari dari tanggal awal dan akhir
  21. $jd1 = GregorianToJD($month1, $date1, $year1);
  22. $jd2 = GregorianToJD($month2, $date2, $year2);
  23.  
  24. $selisih = $jd2 - $jd1;
  25.  
  26. // proses menghitung tanggal merah dan hari minggu
  27. // di antara tanggal awal dan akhir
  28. for($i=1; $i<=$selisih; $i++){
  29. // menentukan tanggal pada hari ke-i dari tanggal awal
  30. $tanggal = mktime(0, 0, 0, $month1, $date1+$i, $year1);
  31. $tglstr = date("Y-m-d", $tanggal);
  32.  
  33. // menghitung jumlah tanggal pada hari ke-i
  34. // yang masuk dalam daftar tanggal merah selain minggu
  35. if (in_array($tglstr, $tglLibur)){
  36. $libur1++;
  37. }
  38.  
  39. // menghitung jumlah tanggal pada hari ke-i
  40. // yang merupakan hari minggu
  41. if ((date("N", $tanggal) == 7)){
  42. $libur2++;
  43. }
  44. }
  45.  
  46. // menghitung selisih hari yang bukan tanggal merah dan hari minggu
  47. return $selisih-$libur1-$libur2;
  48. }
  49.  
  50. $tgl_awal = "2013-01-01"; // Setting Tanggal Mulai disini
  51. $tgl_selesai = "2013-01-31";
  52.  
  53. // output -> "Selisih hari dari tanggal 2013-01-01 dan 2013-01-31 adalah: 23 hari"
  54. echo "Selisih hari dari tanggal ".$tgl_awal." dan ".$tgl_selesai." adalah: ".selisihHari($tgl_awal, $tgl_selesai)." hari";
DOKO_HERDIAN
commented on 26 Sep 2017 08:26:36
  1. gini master,kemarin saya udah coba menggunakan skrip diatas..tp terjadi masalah gimana menentukan tanggal selesai..selisih hari memang sudah ketemu tapi implementasi untuk menentukan tanggal akhir gimana?
  2.  
PHPMU.COM Support
commented on 26 Sep 2017 08:34:05
  1. Tanggal akhir setting disini :
  2. $tgl_selesai = "2013-01-31";
  3.  
  4. Coba perhatikan dengan teliti script di atas,..
  5. pada baris 51 dan 52 untuk menentukan tanggal awal dan akhir, selanjutnya proses pada barris 55 dengan
  6. function selisihHari($tgl_awal, $tgl_selesai) untuk mendapatkan hasilnya, untuk hari libur nasional cukup set pada baris 7, selesai,..
DOKO_HERDIAN
commented on 26 Sep 2017 10:24:51
  1. maaf master, yang saaya maksudkan adalah mencari tanggal selesai secara otomatis, contoh kasus : tanggal mulai = 12-10-2017 jumlah cuti 3 hari , tanggal 14 hari minggu, tanggal 15 tanggal merah, kita pengin tanggal selesai tanggal 17-10-2017 muncul secara otomatis,bukan untuk mencari selisih.
PHPMU.COM Support
commented on 26 Sep 2017 11:24:52
  1. Berikut ini perhitungannya,
  2. silahkan dihitung hasilnya akurat apa gak,... :D
  3.  
  4. <?php
  5. $lama_cuti1 = 8; // Dalam hari
  6. $tgl_awal = "2017-09-26"; // tanggal awal cuti
  7. $tgl_selesai_dengan_libur = date('Y-m-d', strtotime('+'.$lama_cuti1.' days', strtotime($tgl_awal))); // Tgl Selesai termasuk minggu & libur nasional
  8. $lama_cuti2 = selisihHari($tgl_awal, $tgl_selesai_dengan_libur); // Dapatkan jumlah hari libur dari tanggal mulai sampai 8 hari kedepan
  9. $lama_cuti = $lama_cuti1+($lama_cuti1-$lama_cuti2); // Tambahkan Jumlah hari libur dengan lama cuti
  10. $tgl_selesai_tanpa_libur = date('Y-m-d', strtotime('+'.$lama_cuti.' days', strtotime($tgl_awal))); // Hasil akhir
  11.  
  12. echo "lama Cuti $lama_cuti1 <br>";
  13. echo "Tanggal Mulai $tgl_awal <br>";
  14. echo "Tanggal Selesai $tgl_selesai_tanpa_libur <br>";
DOKO_HERDIAN
commented on 26 Sep 2017 14:11:35
  1. terimakasih banyak master..akhirnya tugas kantor terselesaikan...hehehe...
Andre Sihombing
commented on 11 Mei 2018 21:52:10
  1. Mau nanya master, saya mau menghitung gaji perbulan. saya telah berhasil menghitung gaji perbulannya, tetapi masalahnya jika hari libur gajinya lain. yang saya hitung gajinya masih sama perharinya. itu solusinya bagaimana yah master. Mohon pencerahannya.
Agung Syahputra
commented on 01 Agu 2018 09:59:19
  1. Assalam,.. Mas saya mau tanya dan mohon bantuannya, gimana cara membuat untuk menetukan tanggal selanjutnya dengan menginput tanggal tetapi hari libur tidak diikutkan? Mohon mas mas nya bantuannya..
Maaf, Untuk Memberikan Komentar Anda Harus Login !!!