Skip to main content

6.5 Dag Functie

In deze les gaan wee nog een paar functies maken. Houd daarbij rekening met de vorige les waarin is beschreven dat functies generiek dienen te zijn.

Opgave 1

Maak een functie die aan de hand van een nummer een dag van de week terug geeft.

dagNaam( int $dagNummer ) : string 

De functie krijgt een getal mee en maakt daar een weekdag (string) van, bijvoorbeeld:

echo dagNaam(1) // dit drukt ma af (maandag)
echo dagNaam(2) // dit drukt di af (dinsdag)
echo dagNaam(3) // dit drukt wo af (woensdag)
..
echo dagNaam(7) // dit drukt zo af (zondag)

Dus afhankelijk van het nummer dat je als parameter meegeeft aan de functie wordt de return waarde ma, di, wo ,do, vr, za of zo.

Denk ook aan fout-afvang (punt 4 vorige les).

Opgave 2

Maak een functie die aan de hand van een string een dagnummer terug geeft. Dit is dus eigenlijk het omgekeerde van de vorige functie.

dagNummer( string $dagNaam ) : int 

De functie krijgt een dagnaam mee (ma, di, wo, do, vr, za of zo) en maakt daar een dag nummer van.

Bijvoorbeeld:

echo dagNummer("ma") // dit drukt 1 af
echo dagNummer("di") // dit drukt 2 af
..
echo dagNummer("zo") // dit drukt 7 af

Denk ook aan fout-afvang (punt 4 vorige les).

Opgave 3

Zorg dat je beide functies van opgave 1 en 2 hebt en voeg deze code toe.

$nummer=rand(1,7);

echo $nummer;
echo "<br>";
echo dagNummer(dagNaam($nummer);

Wat kun je zeggen over de variabele $nummer en het getal wat wordt afgedrukt op regel 5?

Wat gebeurt er, leg in je eigen woorden uit wat de zedeze code doet.

Opgave 4

Maak een functie die bepaald wat het morgen is.

morgen(string $vandaag) : string

De functie krijg een dag mee (ma, di, wo, do, vr, za, zo) en bepaald dan wat het morgen is. De output is weer een string. Bijvoorbeeld:

$dag=morgen("do");
echo $dag         // er wordt vr afgedrukt.
echo morgen($dag) // er wordt za afgedrukt ($dag is immers vr)

Opgave 5

We gaan de functie uit opgave 4 generieker maken. Stel dat je bijvoorbeeld niet morgen maar overmorgen wil bepalen, of de dag na overmorgen.

We gaan de functie welkeDag maken:

welkeDag( string $dag, int $erbij) : string

De functie krijgt weer een dag mee (ma, di, wo, do ,vr, za, zo) en de tweede parameter $erbij geeft aan hoeveel dagen je erbij wilt tellen. Voor morgen moet $erbij dus 1 zijn. De return waarde is weer een dag (ma, di, wo, do, vr, za, zo).

Voorbeeld:

echo welkeDag("ma", 1) // dit drukt di af omdat di 1 dag na ma is.
echo welkeDag("di", 2)  // dit drukt do af omdat do 2 dagen na di is.
eche welkeDag("zo", 2) // dit drukt di af omdat di 2 dagen zo is.

--