In onze contreien wordt vrijdag de dertiende algemeen als een ongeluksdag aanzien. We weten ook niet echt waar dit bijgeloof vandaan komt. Ondanks het feit dat er allerlei verklaringen te vinden zijn in verschillende godsdiensten en gebruiken, lijkt het er op dat dit bijgeloof nog maar hooguit een dikke 100 jaar oud is.

paraskevidekatriafobie

Ook de combinatie van de weekdag vrijdag en het getal dertien is niet zo universeel als je misschien wel zou denken. In ondere andere België, Nederland en Engeland wordt inderdaad vrijdag de dertiende als ongeluksdag gezien. In Griekenland, Spanje en Latijns-Amerika is het echter dinsdag de dertiende die een ongeluksdag zou moeten zijn. In Italië is iedereen dan weer extra voorzichtig op vrijdag de zeventiende.

Opgave

Schrijf een functie ongeluksdagen waaraan een startdatum (datetime.date) moet doorgegeven worden aan de eerste parameter startdatum.

De functie heeft ook nog een optionele tweede parameter einddatum waaraan een einddatum (datetime.date) moet doorgegeven worden. Als er niet expliciet een waarde wordt doorgegeven aan de parameter einddatum, dan moet de functie vandaag als einddatum gebruiken.

De functie heeft ook nog een optionele derde parameter dag waaraan een dagnummer (int) kan doorgegeven worden. Als er niet expliciet een waarde wordt doorgegeven aan de parameter dag, dan moet de functie 13 als dagnummer gebruiken.

De functie heeft ook nog een optionele vierde parameter weekdag waaraan een weekdagnummer (int) kan doorgegeven worden. Als er niet expliciet een waarde wordt doorgegeven aan de parameter weekdag, dan moet de functie vrijdag als weekdag gebruiken.

De functie moet als resultaat het aantal dagen (int) tussen de begindatum en de einddatum (grenzen inbegrepen) teruggeven die op de gegeven dag en weekdag vallen. Als de begindatum recenter is dan de einddatum, dan liggen er geen dagen tussen de begindatum en de einddatum, en moet de functie logischerwijs de waarde 0 als resultaat teruggeven.

Voorbereiding

In deze opgave moet je gebruikmaken van de gegevenstypes date en timedelta die gedefinieerd worden in de module datetime van de Python Standard Library. Voor je aan de opgave begint, kan je best eerst nagaan hoe Python reageert als je achtereenvolgens de volgende instructies uitvoert binnen een interactieve Python sessie:

  1. >>> from datetime import date
    >>> geboortedatum = date(1983, 1, 14)
    >>> d = date.today() - geboortedatum
    >>> type(d)
    >>> d.days
  2. >>> from datetime import timedelta
    >>> geboortedatum + timedelta(1)
    >>> dag1 = geboortedatum + timedelta(1)
    >>> dag1
    >>> dag2 = dag1 + timedelta(1)
    >>> dag2
  3. >>> vandaag = date.today()
    >>> vandaag
    >>> vandaag.weekday()
    >>> morgen = vandaag + timedelta(1)
    >>> morgen.weekday()
    >>> morgen.day

Zorg er zeker voor dat je begrijpt waarom de verschillende resultaten gegenereerd worden.

Voorbeeld

>>> from datetime import date
>>> ongeluksdagen(date(2012, 1, 1), date(2012, 12, 31))
3
>>> ongeluksdagen(date(2012, 1, 1), date(2012, 12, 31), 14, 5)
3
>>> ongeluksdagen(date(2012, 1, 1), date(2012, 12, 31), 17, 4)
2
>>> ongeluksdagen(date(2012, 1, 1), date(2012, 12, 31), 13, 1)
2
>>> ongeluksdagen(startdatum=date(2012, 1, 1), dag=1, weekdag=0, einddatum=date(2012, 12, 31))
1

Epiloog

Beroemde personen die geboren zijn op vrijdag de dertiende:

Tupac Shakur stief op vrijdag de dertiende.

Epiloog

Componist Arnold Schönberg was gefascineerd door numerologie. Hij werd geboren op 13 september en vreesde dat hij op 76-jarige leeftijd zou sterven, omdat de cijfers van dat getal samen 13 opleveren. Hij bekeek de kalender voor 1951 en was ontzet toen hij zag dat 13 juli op een vrijdag viel. Toen de noodlottige dag aanbrak, bleef hij in bed liggen, bang voor het ergste. De dag verliep zonder incidenten en kort voor middernacht kwam zijn vrouw de slaapkamer binnen om hem welterusten te wensen. Schönberg sprak het woord "harmonie" uit en stierf.

Hij stierf om 23:47 uur, 13 minuten voor middernacht op vrijdag 13 juli, in zijn 76e levensjaar.

Epiloog

Alleen al in de Verenigde Staten verliezen bedrijven naar schatting elke vrijdag de dertiende tussen de 800 en 900 miljoen dollar omdat sommige mensen niet reizen of naar hun werk gaan. De angst voor deze datum wordt paraskevidekatriafobie genoemd.