fork(1) download
  1. <?php
  2.  
  3. define ('ONE_DAY', 60*60*24);
  4. function end_date ($start_date, $working_days) {
  5. $weekday = date ('N', $start_date)-1;
  6. if ($weekday > 4) {
  7. $start_date -= ONE_DAY*(6-$weekday);
  8. $weekday=4;
  9. }
  10. $modulo = $working_days%5;
  11. $days=7*(int)($working_days/5)+$modulo;
  12. $eweekday = $weekday + $modulo;
  13. if ($eweekday > 4)
  14. $days += max(2,7-$eweekday);
  15. return $start_date + ONE_DAY*$days;
  16. }
  17.  
  18. $start_date = date_timestamp_get(date_create ('2014-01-04'));
  19. for ($i=10; $i < 15; ++$i) {
  20. echo date ('d/m/Y',end_date($start_date,$i)), PHP_EOL;
  21. }
Success #stdin #stdout 0.01s 20568KB
stdin
Standard input is empty
stdout
17/01/2014
20/01/2014
21/01/2014
22/01/2014
23/01/2014