Zomertijd (in Vlaanderen ook vaak zomeruur genoemd) is de tijd die gedurende de zomermaanden wordt aangehouden door de klok een uur vooruit te zetten, dit wil zeggen de klok een uur voor te laten lopen op de standaardtijd (die in dit verband ook wel wintertijd genoemd wordt).
In de zomer komt de zon zo vroeg op dat het al licht is terwijl de meeste mensen nog slapen. Door de klok te verzetten, lijkt de zon later op te komen en later weer onder te gaan. Hierdoor is het 's morgens langer donker, en blijft het 's avonds juist langer licht. De periode van daglicht komt zo beter overeen met de periode waarin de meeste mensen wakker zijn. De gedachte achter zomertijd is dat men zo zou kunnen bezuinigen op (elektrische) verlichting. Het energiebesparende effect van zomertijd is echter omstreden. Ongeveer 70 landen verzetten momenteel twee keer per jaar de klok. In de Europese Unie loopt de zomertijd van de laatste zondag van maart tot de laatste zondag van oktober. De datums waarop in de Europese Unie de komende jaren de zomertijd begint en eindigt, worden weergegeven in onderstaande tabel.
jaar | begindatum | einddatum |
---|---|---|
2013 | 31 maart | 27 oktober |
2014 | 30 maart | 26 oktober |
2015 | 29 maart | 25 oktober |
2016 | 27 maart | 30 oktober |
2017 | 26 maart | 29 oktober |
Schrijf een functie zomertijd waaraan een jaartal als argument moet doorgegeven worden. De functie moet als resultaat een date object (datetime module van de Python Standard Library) teruggeven, dat de datum voorstelt waarop in de Europese Unie de zomertijd ingaat (laatste zondag van maart) in het opgegeven jaar.
Schrijf een functie wintertijd waaraan een jaartal als argument moet doorgegeven worden. De functie moet als resultaat een date object (datetime module van de Python Standard Library) teruggeven, dat de datum voorstelt waarop in de Europese Unie de wintertijd ingaat (laatste zondag van oktober) in het opgegeven jaar.
Schrijf een functie klok waaraan een stringargument moet doorgegeven worden, dat een datum voorstelt in het formaat dag/maand/jaar. De functie moet als resultaat een string teruggeven die aangeeft of de klok op de opgegeven datum in zomertijd of wintertijd staat. De functie moet een aangepaste string teruggeven op de datums waarop wordt overgeschakeld tussen zomertijd en wintertijd. De mogelijke omschrijvingen die de functie moet teruggeven vind je terug in onderstaande voorbeeldsessie.
Je mag er bij elke functie van uitgaan dat alle jaartallen tussen 1600 en 2400 liggen. Bij deze opgave is het belangrijk dat je probeert om zoveel mogelijk hergebruik te maken van programmacode, en moet je waar mogelijk dus vermijden om gelijkaardige code te herhalen.
Voor deze opgave moet je gebruikmaken van de gegevenstypes date en timedelta die gedefinieerd worden in de module datetime van de Python Standard Library1. Onderstaande interactieve Pythonsessie demonstreert alle methoden van deze gegevenstypes die je voor deze opgave nodig hebt:
>>> from datetime import date, timedelta
>>> vandaag = date.today()
>>> vandaag
datetime.date(2013, 6, 27)
>>> vandaag.weekday()
3
>>> morgen = vandaag + timedelta(1)
>>> morgen.weekday()
4
>>> morgen
datetime.date(2013, 6, 28)
>>> zomertijd(2013)
datetime.date(2013, 3, 31)
>>> zomertijd(2014)
datetime.date(2014, 3, 30)
>>> zomertijd(2015)
datetime.date(2015, 3, 29)
>>> wintertijd(2013)
datetime.date(2013, 10, 27)
>>> wintertijd(2014)
datetime.date(2014, 10, 26)
>>> wintertijd(2015)
datetime.date(2015, 10, 25)
>>> klok('27/06/2013')
'zomertijd'
>>> klok('27/11/2013')
'wintertijd'
>>> klok('31/03/2013')
'omschakeling van wintertijd naar zomertijd'
>>> klok('27/10/2013')
'omschakeling van zomertijd naar wintertijd'
“Don’t forget to put all your clocks forward tonight,” said Piglet.
“How much?” asked Pooh.
“About five inches, I think,” said Piglet, confidently.