Skip to content

Instantly share code, notes, and snippets.

@nusendra
Last active May 7, 2018 07:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nusendra/ecf3a14b48c56d79a198c72729e2e151 to your computer and use it in GitHub Desktop.
Save nusendra/ecf3a14b48c56d79a198c72729e2e151 to your computer and use it in GitHub Desktop.
Jika tanggal yang di input adalah hari libur, maka carikan hari berikutnya
<?php
// jika daftar tanggal 1, karena tgl 1 adalah hari libur, maka muncul tanggal 2
// jika daftar tanggal 3, karena tgl 3 tidak libur, maka muncul tgl 3
// jika daftar tanggal 10, karena tgl 11, dan 12 adalah hari libur, maka muncul tgl 13
function generateRegisterDate($tgl)
{
$libur = json_decode('[
{"id":"3","tgl_libur":"2018-05-01","keterangan":"Hari Buruh Nasional"},
{"id":"4","tgl_libur":"2018-05-10","keterangan":"Kenaikan Yesus Krisus"},
{"id":"8","tgl_libur":"2018-05-11","keterangan":"abc"},
{"id":"9","tgl_libur":"2018-05-12","keterangan":"cde"},
{"id":"5","tgl_libur":"2018-05-17","keterangan":"cacak libu"},
{"id":"10","tgl_libur":"2018-05-18","keterangan":"qeqe"}
]', true);
$status = false;
foreach($libur as $key => $date) {
if ($tgl == $date["tgl_libur"]) {
for ($i = 0; $i < $key; $i++) {
unset($libur[$i]);
}
foreach($libur as $key => $iterasi) {
if ((strtotime($libur[$key + 1]['tgl_libur']) - strtotime($iterasi['tgl_libur']))/24/3600 != 1) {
return date("Y-m-d", strtotime($iterasi['tgl_libur'] . "+1 day"));
}
}
$status = true;
}
}
if (!$status) {
return $tgl;
}
}
print_r(generateRegisterDate("2018-05-09"));
echo "\n";
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment