script voor aantal te werken dagen per jaar

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

John van der Linden

John van der Linden

11/07/2010 04:37:55
Quote Anchor link
Hoi,

Ik heb hier een script voor het aantal nog te werken dagen per jaar.
Kan dit eventueel worden omgebouwd zodat je ook kan uitlezen hoeveel dagen je in dat jaar totaal moet werken, og heeft iemand zo'n script ?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
/*
 * Author: Alberto Lepe
 * Calculates the working days from today to an specific date.
 * NOTE: counting starts from today
 * @pararm to_date: timestamp
 */

function get_working_days($to_date) {
    $holidays = array(
        1 => array(10), //2011 ...
        2 => array(11),
        3 => array(21), //... 2011
        4 => array(29,30), //2010 ...
        5 => array(3,4,5),
        6 => array(),
        7 => array(19),
        8 => array(11,12,13),
        9 => array(20,23),
       10 => array(11),
       11 => array(3,23),
       12 => array(23) //... 2010
    );

    for($to_date, $w = 0, $i = 0, $x = time(); $x < $to_date; $i++, $x = strtotime("+$i day")) {
       if(date("N",$x) < 6 &! in_array(date("j",$x),$holidays[date("n",$x)])) $w++;
    }

    return $w;
}


//Usage:
echo get_working_days(strtotime("2011-01-08"));
?>
Gewijzigd op 11/07/2010 04:38:33 door John van der Linden
 
PHP hulp

PHP hulp

26/05/2026 13:07:18
 
Joren de Wit

Joren de Wit

11/07/2010 11:52:08
Quote Anchor link
Dat is niet heel lastig. Je zult de variabele $x in je for-loop moeten veranderen en moeten zorgen dat die gelijk valt met 1 januari van het betreffende jaar. $to_date moet vervolgens samenvallen met 31 december van het betreffende jaar.

Je kunt de functie ook heel eenvoudig een $from_date laten accepteren:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
function get_working_days($from_date, $to_date) {
  ...


  for($to_date, $w = 0, $i = 0, $x = $from_date; ...) {
    ...
  }
}

?>


De ... zul je uiteraard zelf nog even in moeten vullen.
 
John van der Linden

John van der Linden

22/07/2010 11:12:15
Quote Anchor link
Hoi,

Wat late reactie ivm vakantie... :-)

Hmmm, wat je zegt ziet er logisch uit, maar toch krijg ik het niet voor elkaar door simpel weg $X en $to_date te vervangen voor datums zoals bv : 20100101 en 20101231.

Kan iemand me iets verder opweg helpen ?
 
Joren de Wit

Joren de Wit

22/07/2010 11:42:20
Quote Anchor link
Die variabelen moeten natuurlijk wel timestamps zijn. Als je een datum hebt, kun je die met strtotime() omzetten naar een timestamp...
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.