script voor aantal te werken dagen per jaar
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 ?
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)
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
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"));
?>
/*
* 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
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:
De ... zul je uiteraard zelf nog even in moeten vullen.
Je kunt de functie ook heel eenvoudig een $from_date laten accepteren:
Code (php)
1
2
3
4
5
6
7
8
9
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; ...) {
...
}
}
?>
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.
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 ?
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 ?
Die variabelen moeten natuurlijk wel timestamps zijn. Als je een datum hebt, kun je die met strtotime() omzetten naar een timestamp...




