Skip to content

Instantly share code, notes, and snippets.

@ognjenm
Last active August 29, 2015 14:15
Show Gist options
  • Save ognjenm/b7ad83287dc5734e5271 to your computer and use it in GitHub Desktop.
Save ognjenm/b7ad83287dc5734e5271 to your computer and use it in GitHub Desktop.
Broj radnih dana izmedju dva datuma (sa praznicima)
/**
*
* @param $pocetni_datum
* @param $krajnji_datum
* @return integer
* @author Ognjen Miletic, osnova uzeta sa interneta
* ne znam gdje, dodat dio za praznike
*/
public static function getBrojRadnihDana($pocetni_datum, $krajnji_datum)
{
//$pocetni_datum = new DateTime('2012-09-06');
//$krajnji_datum = new DateTime('2012-09-11');
//Dodajem jedan dan na zadnji - mora tako :-)
$krajnji_datum->modify('+1 day');
$interval = $krajnji_datum->diff($pocetni_datum);
$ukupno_dana = $interval->days;
// kreiramo period datuma (P1D = 1 dan)
$period = new DatePeriod($pocetni_datum, new DateInterval('P1D'), $krajnji_datum);
// array praznika
//TODO: dinamicki kreirati godinu
$praznici = array('');
foreach($period as $dt) {
$trenutni = $dt->format('D');
// Ako je trenutni datum u $praznici - oduzmi
if (in_array($dt->format('Y-m-d'), $praznici)) {
//TODO: ovdje bi trebalo oduzeti dva dana (slavi se dva dana ne računajući nedjelju)
if($trenutni == 'Sat') $ukupno_dana--; //ako je subota oduzimam ponedjeljak
else $ukupno_dana = $ukupno_dana - 2; //ako je nedjelja oduzimam ponedjeljak i utorak
}
// oduzmi ako je subota ili neđelja
if ($trenutni == 'Sat' || $trenutni == 'Sun') {
$ukupno_dana--;
}
}
return $ukupno_dana; // 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment