Taxikosten

Een taxibedrijf hanteert het volgende tarief:

  • Per gereden km € 1,=. Daarboven een bedrag per gereden minuut: € 0,25 tussen 8.00 en 18.00 uur, € 0,45 buiten deze periode.
  • Van vrijdagavond 22.00 uur tot maandagochtend 7.00 uur worden de ritprijzen verhoogd met een weekendtoeslag van 15%. Deze toeslag wordt alleen toegepast als de rit begint in de genoemde periode.

De te ontwikkelen software moet aan de hand van de ritgegevens de ritprijs berekenen. Je mag er vanuit gaan dat een rit op één en dezelfde dag begint en eindigt.

Ouderbijdrage school

Een basisschool berekent de ouderbijdrage als volgt:

  • Een basisbedrag van € 50,=. Daarnaast voor elk kind jonger dan 10 jaar € 25,= (voor maximaal 3 kinderen) en voor elk kind van 10 jaar en ouder € 37,= (voor maximaal 2 kinderen).
  • De maximale ouderbijdrage bedraagt € 150,=.
  • Voor éénoudergezinnen wordt op de berekende bijdrage (nádat de controle op het maximum heeft plaatsgevonden) een reductie toegepast van 25%.

De te ontwikkelen software moet aan de hand van de gezinsgegevens de verschuldigde ouderbijdrage bepalen. De leeftijd van elk kind moet aan de hand van geboortedatum en een peildatum worden berekend.

Autoverhuur

Een autoverhuurbedrijf hanteert de volgende tarieven:

  • Voor personenauto’s: Per gereden kilometer een bedrag van € 0,20 (voor elke dag dat de auto verhuurd is zijn de eerste 100 km vrij). Daarnaast een bedrag van € 50,= per dag.
  • Voor personenbusjes bedraagt de kilometerprijs € 0,30 en het dagtarief € 95,=.

De auto wordt uitgegeven met een volle tank benzine. Bij het inleveren van de auto wordt de tank weer volledig gevuld.

De te ontwikkelen software moet aan de hand van de verhuurgegevens het verschuldigde bedrag berekenen. Het aantal dagen moet worden bepaald aan de hand van begin- en einddatum verhuurperiode. Je mag er vanuit gaan dat elke maand 30 dagen telt. Bij het bepalen van de kosten moet onderweg getankte benzine ook betrokken worden.

Dierenpark

Het Noorder Dierenpark in Emmen hanteert onder andere de volgende tarieven voor abonnementen:

  • Echtpaar € 61,=
  • Gezin met 1 kind € 71,=
  • Gezin met 2 kinderen € 82,=
  • Persoonlijk € 30,=
  • Elk kind extra € 11,=
  • Echtpaar 65+ € 65,=
  • Persoonlijk 65+ € 26,=

De te ontwikkelen software moet aan de hand van de gegevens van de abonnementaanvrager de abonnementsprijs bepalen.
De leeftijd van de volwassene(n) moet aan de hand van geboortedatum en een peildatum worden berekend.

Kinderbijslag

Een kinderbijslagregeling ziet er als volgt uit:

  • Voor elk kind jonger dan 12 jaar bedraagt de kinderbijslag € 150,= per kwartaal, voor elk kind vanaf 12 jaar en jonger dan 18 jaar is dit bedrag € 235,=.
  • Afhankelijk van het totale aantal kinderen kan het berekende bedrag nog worden verhoogd met een opslagpercentage:
  • Dit opslagpercentage bedraagt 2% bij 3 of 4 kinderen, 3% bij 5 kinderen en 3.5% bij 6 of meer kinderen.

De te ontwikkelen software moet aan de hand van de gezinsgegevens de aan dat gezin toegekende kinderbijslag bepalen. De leeftijd van elk kind moet aan de hand van geboortedatum en een peildatum worden berekend.

Camping

Bij een camping in de omgeving van Emmen gelden in het hoofdseizoen (11 juli tot en met 15 augustus) de volgende tarieven (alle genoemde bedragen zijn per etmaal):

  • plaatshuur (breedte 10 meter) € 30,=
  • per persoon € 5,=
  • hond € 4,=
  • per meter meer € 3,=
  • per meter minder € 2,= (korting)
  • auto bij tent € 6,=

Buiten het hoofdseizoen bedraagt de plaatshuur € 25,= (de overige bedragen zijn gelijk aan die in het hoofdseizoen).

De te ontwikkelen software moet aan de hand van de reserveringsgegevens het verschuldigde campinggeld bepalen. Het aantal dagen binnen en buiten het hoofdseizoen moet worden bepaald aan de hand van begin- en einddatum (je mag er vanuit gaan dat de begin- en einddatum in juli en/of augustus vallen).

Containerverhuur (voor bouwafval, puin etc)

Bij een containerverhuurbedrijf gelden de volgende tarieven:

  • De huur bedraagt € 40,= per m3 per dag.
  • Het afvoeren van een volle bak (inclusief het eventueel plaatsen van een lege) kost € 60,= als het volume van de bak 2 m3 of minder bedraagt, anders € 125,=.
  • Vaste klanten krijgen op het totale verschuldigde bedrag een korting van 15%.

De te ontwikkelen software moet aan de hand van de verhuurgevens het verschuldigde huurbedrag berekenen. De lengte van de huurperiode moet worden bepaald aan de hand van begin- en einddatum.
De begin- en einddatum vallen in hetzelfde kalenderjaar. Je mag bij deze opdracht uitgaan van maanden van 30 dagen).

Transportbedrijf

Een transportbedrijf hanteert tarieven die gebaseerd zijn op zowel het volume als op het gewicht van de te vervoeren lading:
Voor niet-vloeibare ladingen:

  • Volume-component: € 0,80 per m3
  • Gewicht-component: € 0,55 per kg

Voor vloeibare ladingen bedragen deze tarieven resp. € 1,25 en € 0,45.

De som van de beide componenten levert de transportkosten per kilometer. Voor buitenlandse ritten geldt een toeslag van 45% op de buiten Nederland gereden kilometers. Voor buitenlandse ritten wordt tevens een toeslag berekend voor douanekosten: 3.5% van de waarde van de lading. De minimum toeslag voor douanekosten bedraagt € 45,=.

De te ontwikkelen software moet aan de hand van de gegevens van een transport het verschuldigde bedrag berekenen.

Waterverbruik

Voor de kosten van het waterverbruik gelden drie mogelijke tarieven:

  • tarief 1: vastrecht € 100,= per jaar
  • tarief 1: verbruikskosten € 0,25 per m3
  • tarief 2: vastrecht € 75,= per jaar
  • tarief 2: verbruikskosten € 0,38 per m3
  • tarief 0: Voor de betreffende verbruiker wordt de voordeligste mogelijkheid (tarief 1 of tarief 2) gekozen.

De te ontwikkelen software moet voor een verbruiker het verschuldigde bedrag over het afgelopen jaar bepalen.

Glashandel

Een glashandel werkt met de volgende tarieven:

  • Gewoon glas: Glaskosten € 30,= per m2, snijkosten € 10,= per bestelling.
  • Speciaal glas: Glaskosten € 55,= per m2, snijkosten € 25,= per bestelling.

Voor de berekening van de glaskosten wordt uitgegaan van gehele vierkante meters (bijvoorbeeld 0,6 m2 besteld, 1 m2 berekend), tenzij de bestelde grootte uit restanten kan worden gesneden; dit wordt aangegeven met een restantcode.
Als de totale glaskosten € 145,= of hoger zijn worden geen snijkosten in rekening gebracht.
Als de glaskosten meer bedragen dan € 250,= dan wordt een korting van 5% gegeven.

De te ontwikkelen software moet aan de hand de gegevens van een bestelling het verschuldigde bedrag bepalen.

Houthandel

Bij een houthandel gelden de volgende tarieven:
Voor klasse 1 bedraagt de houtprijs € 300,= per m3, voor klasse 2 is de prijs € 500,= en voor klasse 3 is het € 450,=.
Het schaafloon bedraagt € 0,60 per m2.
Als de totale houtkosten € 200,= of meer bedragen dan wordt geen schaafloon in rekening gebracht.
Afhankelijk van de gevraagde levertijd wordt een korting gegeven:

  • 14 dagen <= levertijd < 21 dagen : 1 % korting
  • 21 dagen <= levertijd < 28 dagen : 2 % -
  • 28 dagen <= levertijd : 2,5% -

De te ontwikkelen software moet aan de hand van de gegevens van een bestelling het verschuldigde bedrag bepalen. De levertijd in dagen dient te worden bepaald met behulp van de gevraagde leverdatum en de huidige datum. De huidige datum en de gevraagde leverdatum vallen in hetzelfe kalenderjaar. Je mag bij deze opdracht uitgaan van maanden van 30 dagen.

Opleidingsinstituut

Bij een opleidingsinstituut gelden de volgende tarieven:

  • Voor schriftelijke vakken: Lesgeld € 50,=, voor het studiemateriaal €50,=.
  • Voor mondelinge vakken: Lesgeld € 150,=, voor het studiemateriaal € 50,=
  • Voor practische vakken: Lesgeld € 150,=, voor het studiemateriaal € 125,=.

Als het totale aantal vakken 5 of meer bedraagt wordt alléén op het lesgeld een korting gegeven van 5%.
Cursisten jonger dan 19 jaar ontvangen op het totale cursusgeld een korting van 2%.
Cursisten die de cursussen door bemiddeling van het arbeidsbureau volgen hoeven het studiemateriaal niet te betalen.

De te ontwikkelen software moet voor een cursist (die zich voor meerdere cursussen kan inschrijven) het aan het opleidingsinstituut verschuldigde bedrag te bepalen. De leeftijd van elke cursist moet aan de hand van geboortedatum en een peildatum worden berekend.

Schijventarief Inkomstenbelasting

De verschuldigde inkomstenbelasting wordt als volgt bepaald:
Het belastbaar inkomen (het eindbedrag van de belastingaangifte) wordt verminderd met de belastingvrije som (afhankelijk van de tariefgroep (zie verderop)); het resultaat heet de belastbare som.
Deze belastbare som vormt de basis voor het berekenen van de inkomstenbelasting:

  • Over de eerste € 8.000 bedraagt de belasting : 35,75%
  • Over het gedeelte € 8.001 t/m € 25.000 : 37,05%
  • Over het gedeelte € 25.001 t/m € 54.000 : 50%
  • Over het gedeelte vanaf € 54001 : 60%

De belastingvrije som is afhankelijk van de tariefgroep:

  • tariefgroep 1: € 419,=
  • tariefgroep 2: € 8.799,=
  • tariefgroep 3: € 17.179,=
  • tariefgroep 4: € 15.503,=
  • tariefgroep 5: € 15.503,=
  • + 12% van het belastbaar inkomen met een maximum van € 6.704,=

De te ontwikkelen software moet voor een belastingplichtige de verschuldigde belasting over het afgelopen jaar bepalen.

Bestelling (1)

De verschillende artikelen zijn genummerd met behulp van zescijferige artikelnummers: de eerste 4 posities geven het jaar aan waarin het artikel is gefabriceerd en de laatste 2 posities een volgnummer.
Afhankelijk van de leeftijd van de artikelen wordt een leeftijdskorting gegeven:

  • 2 jaar <= leeftijd < 3 jaar : leeftijdskorting = 5%
  • 3 jaar <= leeftijd < 5 jaar : - 10%
  • 5 jaar <= leeftijd : - 25%

Behalve deze leeftijdskorting is er nog een andere korting mogelijk: als het vijfde cijfer van het artikelnummer even is dan wordt een extra korting van 2% gegeven.

De te ontwikkelen software moet voor een bestelling (die kan bestaan uit meerdere bestelregels) het verschuldigde bedrag bepalen. De leeftijd van de bestelde artikelen moet worden bepaald met behulp van een peildatum.

Eenmalige uitkering

Werknemers met een huidig maandsalaris beneden een bepaalde grens ontvangen een eenmalige uitkering.
Deze grens is afhankelijk van de leeftijd en burgelijke staat van de werknemer:

  • Voor ongehuwde werknemers jonger dan 21 jaar bedraagt deze grens € 1300,=, voor de overige werknemers € 1425,=.
  • Deze uitkering bedraagt 1,75% van het totale salaris verdiend in het afgelopen jaar.
  • Als de uitkering volgens bovenstaande berekening minder dan € 250,= bedraagt dan wordt deze opgetrokken naar € 250,=.

De te ontwikkelen software moet aan de hand van de salarisgegevens van een werknemer de uitkering bepalen waar die werknemer recht op heeft. De leeftijd van de werknemers moet worden bepaald met behulp van een peildatum.

Vakantiedagen

Elke werknemer binnen een bedrijf heeft recht op een aantal zogenaamde basis-vakantiedagen:
dit aantal is afhankelijk van de afdeling waarbinnen de betreffende werknemer werkzaam is: Voor de werknemers uit afdeling 1 is dit aantal 24, voor afdeling 2 23, voor afdeling 3 22, voor de overige afdelingen 20. Het afdelingsnummer is het eerste cijfer van het personeelsnummer.
Afhankelijk van leeftijd en diensttijd kan dit aantal verhoogd worden:
Als de betreffende werknemer 10 jaar of langer in dienst is wordt het aantal dagen verhoogd met 3; als de werknemer 50 jaar of ouder is dan ontvangt hij of zij 5 dagen extra. Werknemers vanaf 55 jaar krijgen er elk jaar nog eens 1 dag bij.
Zo krijgt een werknemer van 58 jaar aan leeftijdsdagen 5 (ouder dan 50) plus 4 (voor 55, 56, 57 en 58 jaar).

De te ontwikkelen software moet aan de hand van de gegevens van een werknemer het aantal vakantiedagen bepalen. De leeftijd van de werknemers en het aantal dienstjaren moeten worden bepaald met behulp van een peildatum.

Contributie Sportvereniging (1)

Binnen een sportvereniging gelden de volgende regels voor het bepalen van de jaarlijkse contributie:
Seniorleden betalen € 75,=, juniorleden € 40,=. Men is seniorlid als men 18 jaar of ouder is. Men kan spelend – of niet spelend lid zijn.
Spelende leden betalen naast de clubcontributie ook nog bondscontributie: deze bedraagt voor zowel senior- als juniorleden € 45,=.
Op de clubcontributie (dus niet de bondscontributie) wordt een korting gegeven die afhankelijk is van de duur van het lidmaatschap:

  • 4 jaar <= duur lidmaatschap < 7 jaar : korting 2%
  • 7 jaar <= duur lidmaatschap : korting 3,5%

De te ontwikkelen software moet aan de hand van de lidgegevens de verschuldigde contributie bepalen.
De leeftijd van de leden en het aantal jaren lid moeten worden bepaald met behulp van een peildatum.

Contributie Sportvereniging (2)

Binnen een sportvereniging kunnen één of meer van de volgende sporten beoefend worden: voetbal, volleybal, basketbal, handbal, atletiek.
De jaarlijkse contributie wordt als volgt bepaald: De basiscontributie bedraagt € 40,=. Per beoefende sport komt hier een bedrag bij; dit bedrag is afhankelijk van het aantal sporten dat men beoefend:

  • bij 1 of 2 sporten € 25,= per sport
  • bij 3 of 4 sporten € 22,= per sport
  • bij 5 sporten € 20,= per sport.

Juniorleden (jonger dan 18 jaar) en veteranen (40 jaar en ouder) krijgen 10% korting. Is men 5 jaar of langer lid dan geldt er een (extra) korting van 5%.

De te ontwikkelen software moet aan de hand van de lidgegevens de verschuldigde contributie bepalen.
De leeftijd van de leden en het aantal jaren lid moeten worden bepaald met behulp van een peildatum.

Bibliotheek

Op basis van uitleendatum en retourdatum wordt bepaald hoe lang een boek uitgeleend is geweest. Voor het gemak wordt er vanuit gegaan dat elke maand 30 dagen heeft.
Een eventuele uitleenboete is afhankelijk van het aantal uitleendagen en van het soort boek:

  • Romans: Als dagen > 21 een boete van € 0,25 per dag.
  • Studieboeken: Als dagen > 30 een boete van € 1,= per week. Een deel van een week telt hierbij als volle week: stel dagen = 39, dus 9 dagen te laat, 2 x € 1,= boete.

Het soort boek kan worden bepaald aan de hand van het vier-cijferig boeknummer: romans 1e cijfer = 9, studieboeken 1e cijfer <> 9.

De te ontwikkelen software moet voor een terugbezorgd boek de eventuele boete bepalen.

Verkopersprovisie

Een bedrijf berekent de provisie voor haar verkopers over de afgelopen kalendermaand als volgt:
3% van de omzet in euro’s plus € 4,= per verkochte eenheid. Het berekende provisiebedrag wordt daarna verhoogd met een percentage dat afhankelijk is van het aantal verkochte eenheden in het afgelopen 12 maanden.
Dit percentage wordt als volgt berekend:

  • voor de eerste 10.000 stuks : 1% per 1000
  • voor de tweede 10.000 stuks : 1,5% per 1000
  • daarboven : 2% per 1000

Het percentage kan nooit hoger worden dan 50%

De te ontwikkelen software moet aan de hand van de omzetgegevens van een verkoper het uit te keren provisiebedrag bepalen.

Peildatum

De peildatum is een tijdstip op de tijdlijn dat aangeeft wanneer de waarde van het gegeven bepaald is. Informatie is gerelateerd aan een tijdstip. Bij gegevens die in de loop van de tijd relatief veel veranderen, is de datum relevant. In feite zijn er eigenlijk geen gegevens die niet gebonden zijn aan tijd. Een peildatum wordt toegepast bij gegevens die sterk afhankelijk zijn van tijd.

Datúúúm©* oefeningen

(*I. Aachboun)

  1. Schrijf een PHP-script dat de copyrightinformatie in het volgende formaat weergeeft. Om het huidige jaar te krijgen kunt u de datum() functie gebruiken.

    Verwacht formaat: © 2013 PHP-oefeningen - UnboundiT

  2. Maak een eenvoudig ‘verjaardagsaftelprocedure’ script, het script telt het aantal dagen tussen de huidige dag en de verjaardag.
  3. Schrijf een PHP-script om de huidige datum af te drukken in de volgende indeling. Om de informatie over de huidige datum te verkrijgen, kunt u de functie datum() gebruiken.

    Voorbeeld formaat : (ga ervan uit dat de huidige datum 1 september 2013 is).
    2013/09/01
    13.09.01
    01-09-13

  4. Schrijf een PHP-script om het verschil tussen twee data te berekenen.

    Voorbeeld data: 1981-11-04, 2013-09-04
    Verwacht resultaat: 31 jaar, 10 maanden, 11 dagen

  5. Schrijf een PHP-script om een datum om te zetten van yyyy-mm-dd naar dd-mm-yyyy.

    Voorbeeld datum: 2012-09-12
    Verwacht resultaat: 12-09-2012

  6. Schrijf een PHP-script om de datum om te zetten naar een timestamp.

    Voorbeeld datum: 12-05-2014
    Verwacht resultaat: 139985852800

  7. Schrijf een PHP-script om een aantal dagen tussen twee data te berekenen.
  8. Schrijf een PHP-script om de eerste en laatste dag van een maand vanaf een bepaalde datum te krijgen.
  9. Schrijf een PHP-script om de huidige datum af te drukken als: Zaterdag de 7e of Friday the 13th
  10. Schrijf een PHP-script om te controleren of de opgegeven data geldig zijn of niet?
  11. Schrijf een PHP-script om het tijdsverschil in dagen en jaren, maanden, dagen, uren, minuten en seconden tussen twee data te krijgen.
    Opmerking: Gebruik de DateTime klasse.
  12. Schrijf een PHP-script om het maandnummer te veranderen in de naam van de maand.
  13. Schrijf een PHP-script om de datum van gisteren te krijgen.
  14. Schrijf een PHP-script om de huidige datum/tijd van ‘Australia/Melbourne’ te krijgen.
  15. Schrijf een PHP-script om te controleren of een datum een weekend is of niet.
  16. Schrijf een PHP-script om het aantal dagen van een bepaalde datum op te tellen/af te trekken.

    Voorbeeld output : Oorspronkelijke datum : 2011-01-01-01
    Voor 40 dagen : 2010-11-22 2010-11-22
    Na 40 dagen : 2011-02-10

  17. Schrijf een PHP-functie om de begin- en einddatum van een week (per weeknummer) van een bepaald jaar te krijgen.

    Voorbeeld week en jaar : 12, 2014
    Output:
    Startdatum van de week: 2014-3-24
    Einde van de week: 2014-3-30

  18. Schrijf een PHP-script om de huidige leeftijd van een persoon te berekenen.

    Geboortedatum van de steekproef: 11.4.1987
    Output : Uw leeftijd : 27 jaar, 1 maand, 29 dagen.

  19. Schrijf een PHP-script om de weken tussen twee data te berekenen.

    Voorbeeld output: De weken tussen 1/1/2014 en 12/31/2014 bedraagt 52 weken.

  20. Schrijf een PHP-script om het nummer van de maand voor de huidige maand te krijgen.
  21. Schrijf een PHP-script om seconden om te zetten in dagen, uren, minuten en seconden.

    Voorbeeld seconden: 200000
    Verwachte output: 2 dagen, 7 uur, 33 minuten en 20 seconden.

  22. Schrijf een PHP-script om de voorgaande 6 maanden gerekend vanaf de huidige maand te krijgen.
  23. Schrijf een PHP-script om de huidige maand en de voorgaande drie maanden te krijgen.
  24. Schrijf een PHP-script om de datum met een maand te verhogen

    Voorbeeld datum: 2012-12-21
    Verwachte output: 2013-01-21

  25. Schrijf een PHP-script om de huidige datum in het Italiaans te krijgen.

    Voorbeeld output: Vandaag is lun on ott 06, 2014.

  26. Schrijf een PHP-script om het nummer om te zetten naar een maandnaam.
  27. Schrijf een PHP-script om het aantal dagen van de huidige maand op te vragen.
  28. Schrijf een PHP-script om de tijd in een bepaalde tijdzone weer te geven.