Ik ben bezig met het maken van een kalender, dat lukt wel aardig nadat ik gebruik had gemaakt van http://www.phphulp.nl/php/scripts/1/829/
Zelf heb ik daar nog wat andere dagen aan toegevoegd.

Weet iemand hoe ik andere dagen toevoeg zoals:
- // Driekoningen (elk jaar op 6 januari wordt gevierd, tenzij op een werkdag)
- Moederdag (2e zondag in mei)
- Vaderdag (3e zondag in juni)

Eigelijk wil ik dus weten hoe ik de 2e of 3de zondag van een maand uit kan rekenen.

Zou iemand me verder kunnen helpen?

Gr, Tim

ps, driekoningen al bijna opgelost ;-)
Het makkelijkste is het om deze dingen gewoon 'hard' in je code te zetten.

<?php
$zondagteller = 0;

.......
Je 'loop' om je de dagen door te lopen
........

if($dag == 'zondag') $zondagteller++;
if($zondagteller == 2 && $maand == 5){
echo "Moederdag";
}

.....

hier ergens het einde van je loop
.....
.....
.....
......
?>
Bedankt voor je reactie, zal even er wat mee experimenteren.
Ook heb ik ontdekt dat Driekoningen altijd op een vaste datum valt, en niet op een bepaalde dag. Kwam door onduidelijke tekst op wikipedia :)

Ik ga even met je tip bezig.


Gr, Tim
Delete maar.
Omg niet goed gelezen. Nou ja sorry voor deze 2 onnuttige reacties dan.
:D Toch bedankt voor het lezen van het topic....


<?php
$jaar = 2008;

$maxdag = date('t');
$dagi = 0;
$deweek = 1;
while($dagi < $maxdag) {
	$valtop = date('w', mktime(0,0,0,5,$dagi,$jaar));
	
	if($valtop == 0) {
		if($deweek == 2) {
			echo $dagi.'-5-'.$jaar;
			$deweek++;
		} else {
			$deweek++;
		}
	}
	$dagi++;
}

?> 


tadaa :D het is gelukt om moederdag uit te rekenen, vaderdag lukt me nu ook wel :D

Iedereen bedankt!

Gr, Tim
Aan de hand van een topic van mij laatst had blanche mij aardig geholpen
Hieruit heb ik het volgende gemaakt.

<?php
$jaar = 2008;
echo date('d-m-Y',strtotime('last sunday', strtotime($jaar.'0601 + 3 weeks'))); //vaderdag
echo date('d-m-Y',strtotime('last sunday', strtotime($jaar.'0501 + 2 weeks'))); //moederdag
?>
nog even 1 ding he: Je zit nu in de while lus, maar ook als die vaderdag heeft gevonden loopt die nog verder.
Je kan ook (wanneer die vaderdag heeft gevonden) een break; gebruiken om vanaf dat moment uit die lus te breken.
@Robert Deiman:
Bedankt Robert Deiman, ik had al zo'n idee dat dat kon met break; maar was niet helemaal overtuigd, maar nu dus wel :)

@Robert:
Die methode is inderdaad stukken korter! dankje wel!


$maxdag = date('t');

dat klopt niet, want hij neemt die van de huidige maand :)

Gr, Tim

Reageren