The world
calendar (also universal calendar)
is a proposal to reconstruct the Gregorian calendar to a calendar where
the days of the week are in the same week every year. This includes
Christmas and New Year's day. The concept for this calendar was already
developed in 1834 by Marco Mastrofini, but it was only one hundred years
later that Elisabeth Achelis drew attention to it when she founded the World
Calendar Association (WCA) in 1930. This organization argued this
calendar should be put in use, first in the League of Nations and
later in the UNO.
The world calendar is a fairly simple
adaption of the 1582 Gregorian calendar. A year is divided in 12 months.
Every year starts at Sunday 1 January and after that, there's always a
fixed combination of the date and day of the week. The year is divided in
4 quarters. Every quarter counts 91 days. January, April, July and October
are always the first month of a quarter and the first day is always a
Sunday. These months count 31 days, the two next months count 30 days.
This way, there would always be 364 days in a year. In order to come to a
duration of 365 days, 5 hours, 48 minutes and 45,1814 seconds (an entire
rotation of the earth around the sun) one leap day is needed yearly and a
second leap day every four years (which is the same case in the Gregorian
calendar). The necessary, yearly leap day would be 31 December. That would
not be a Sunday that comes after Saturday 30 December, but a global bank
holiday called World Day. After that comes 1 January — the beginning
of the next year. In leap years, there is an extra day in the summer. That
would be 31 June. The WCA strongly argued inserting the World calendar in
2002, because 1 January would then be a Sunday.
January |
Su |
Mo |
Tu |
We |
Th |
Fr |
Sa |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
|
|
|
|
|
February |
Su |
Mo |
Tu |
We |
Th |
Fr |
Sa |
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
|
|
|
March |
Su |
Mo |
Tu |
We |
Th |
Fr |
Sa |
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
|
April |
Su |
Mo |
Tu |
We |
Th |
Fr |
Sa |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
|
|
|
|
|
May |
Su |
Mo |
Tu |
We |
Th |
Fr |
Sa |
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
|
|
|
June |
Su |
Mo |
Tu |
We |
Th |
Fr |
Sa |
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
|
|
|
July |
Su |
Mo |
Tu |
We |
Th |
Fr |
Sa |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
|
|
|
|
|
August |
Su |
Mo |
Tu |
We |
Th |
Fr |
Sa |
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
|
|
|
September |
Su |
Mo |
Tu |
We |
Th |
Fr |
Sa |
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
|
October |
Su |
Mo |
Tu |
We |
Th |
Fr |
Sa |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
|
|
|
|
|
November |
Su |
Mo |
Tu |
We |
Th |
Fr |
Sa |
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
|
|
|
December |
Su |
Mo |
Tu |
We |
Th |
Fr |
Sa |
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
|
|
|
The advantage of this calendar is its simple
structure. The year always starts on a Sunday and every other date is
always in the same week. The quarters, which each consist of 91 days,
count exactly 13 weeks. Because of this, statistics that are based on
numbers per quarter can be compared better. The yearly 'leap day' on 31
December is a holiday that has nothing to do with a religion or with any
culturally determined phenomenon. It is the day the earth starts a new
rotation. This applies to all earthlings. It is a bank holiday for the
entire world population, a day that could symbolize man's unity.
Furthermore there is a great advantage in the countries where Christmas is
celebrated. Christmas Day and Boxing day are on a Monday and Tuesday.
The biggest disadvantage is breaking the
current pattern of a 7-day week. Saturday 30 December won't be followed by
a Sunday and every four years, there won't be a Sunday after Saturday 30
June. This means that a tradition of thousands of years that was
introduced by the Babylonians (1800 to 539 BC) would be broken. Since
then, the introduction of the 7-day week has survived every calendar
reformation. Introducing this calendar would mean great problems for
determining religious holidays that are based on a 7-day week.
Assignment
Write a function worldcalendar
to which a number $d$ ($1 \leq d \leq 366$) of a day of the world calendar
should be given. Assume this is a year in the world calendar that has both
a world day and a leap day, the total amount of days that year being
366. The days are numbered starting from 1, so that number 1
corresponds with Sunday 1
January. The function should print a string of the format "weekday day month", that
represents the day from the world calendar with the number given. Here,
also the special weekdays worldday
and leapday are taken into
consideration. This assignment is made in order to use the structure of
the world calendar as efficiently as possible, so that you can keep the
code of the function worldcalendar
as short as possible.
Example
>>> worldcalendar(1)
'Sunday 1 January'
>>> worldcalendar(32)
'Wednesday 1 February'
>>> worldcalendar(62)
'Friday 1 March'
>>> worldcalendar(92)
'Sunday 1 April'
>>> worldcalendar(182)
'Saturday 30 June'
>>> worldcalendar(183)
'leapday 31 June'
>>> worldcalendar(184)
'Sunday 1 July'
>>> worldcalendar(275)
'Sunday 1 October'
>>> worldcalendar(333)
'Tuesday 28 November'
>>> worldcalendar(365)
'Saturday 30 December'
>>> worldcalendar(366)
'worldday 31 December'
De wereldkalender (ook wel universele kalender genoemd) is een voorstel om de Gregoriaanse kalender te hervormen tot een kalender waarbij de dagen van de week ieder jaar opnieuw op dezelfde weekdag vallen. Dus ook Kerstmis en Nieuwjaarsdag. Het concept voor deze kalender werd reeds ontwikkeld in 1834 door Marco Mastrofini, maar werd pas honderd jaar later serieus onder de aandacht geplaatst door Elisabeth Achelis die in 1930 de World Calendar Association (WCA) oprichtte. Deze organisatie bepleitte de instelling van deze kalender eerst bij de Volkenbond en later bij de UNO.
De wereldkalender is een betrekkelijk eenvoudige wijziging van de Gregoriaanse kalender van 1582. Een jaar wordt verdeeld in 12 maanden. Elk jaar begint met zondag 1 januari en daarna bestaat er steeds een vaste combinatie van datum en dag in de week. Het jaar is opgedeeld in vier kwartalen. Elk kwartaal heeft 91 dagen. Januari, april, juli en oktober zijn steeds de eerste maand van een kwartaal en de eerste dag daarvan valt steeds op een zondag. Deze maanden hebben 31 dagen, de twee volgende maanden hebben 30 dagen. Op die manier zou een jaar altijd 364 dagen hebben. Om te komen tot een duur van 365 dagen, 5 uren, 48 minuten en 45,1814 seconden (een hele omwenteling van de aarde rond de zon) is er ieder jaar één schrikkeldag nodig en (net als in de Gregoriaanse kalender) om de vier jaar een (tweede) schrikkeldag. Die noodzakelijke, jaarlijkse schrikkeldag is dan 31 december. Dat is dan geen zondag die volgt op zaterdag 30 december, maar over de hele wereld een feestdag die Werelddag wordt genoemd. Daarna volgt zondag 1 januari — het begin van het volgende jaar. In schrikkeljaren wordt in de zomer een extra dag ingelast. Dat is dan 31 juni. De WCA heeft in 2012 sterk gepleit voor de invoering van de Wereldkalender, want toen viel 1 januari ook op een zondag.
Januari |
Zo |
Ma |
Di |
Wo |
Do |
Vr |
Za |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
|
|
|
|
|
Februari |
Zo |
Ma |
Di |
Wo |
Do |
Vr |
Za |
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
|
|
|
Maart |
Zo |
Ma |
Di |
Wo |
Do |
Vr |
Za |
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
|
April |
Zo |
Ma |
Di |
Wo |
Do |
Vr |
Za |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
|
|
|
|
|
Mei |
Zo |
Ma |
Di |
Wo |
Do |
Vr |
Za |
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
|
|
|
Juni |
Zo |
Ma |
Di |
Wo |
Do |
Vr |
Za |
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
|
|
|
Juli |
Zo |
Ma |
Di |
Wo |
Do |
Vr |
Za |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
|
|
|
|
|
Augustus |
Zo |
Ma |
Di |
Wo |
Do |
Vr |
Za |
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
|
|
|
September |
Zo |
Ma |
Di |
Wo |
Do |
Vr |
Za |
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
|
Oktober |
Zo |
Ma |
Di |
Wo |
Do |
Vr |
Za |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
|
|
|
|
|
November |
Zo |
Ma |
Di |
Wo |
Do |
Vr |
Za |
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
|
|
|
December |
Zo |
Ma |
Di |
Wo |
Do |
Vr |
Za |
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
|
|
|
Het voordeel van deze kalender is de eenvoudige structuur. Het jaar begint altijd met een zondag en elke andere datum valt steeds in dezelfde week. De kwartalen, elk bestaande uit 91 dagen, tellen precies 13 weken. Daardoor zijn statistieken die gebaseerd zijn op cijfers per kwartaal nog beter onderling vergelijkbaar. De jaarlijkse 'schrikkeldag' op 31 december is een feestdag die los staat van een bepaalde religie of wat voor cultureel bepaald verschijnsel dan ook. Het is de dag waarop de aarde aan een nieuw rondje begint. Dit geldt voor iedere aardbewoner. Het is dus een feestdag voor de hele wereldbevolking, een dag die de verbondenheid van de mensheid zou kunnen symboliseren. Verder is er een groot voordeel in landen waar kerstmis wordt gevierd. Eerste en tweede kerstdag vallen nu altijd op vaste dagen: maandag en dinsdag.
Als grootste nadeel wordt gezien het doorbreken van het patroon van de zevendaagse week. Op zaterdag 30 december volgt geen zondag en om de vier jaar volgt op 30 juni geen zondag. Dat betekent een breuk met een traditie van duizenden jaren die werd ingesteld door de Babyoniërs (1800 tot 539 v. Chr.). De instelling van de week van zeven dagen heeft sindsdien alle kalenderhervormingen overleefd. Invoering van deze kalender betekent grote problemen voor het vaststellen van religieuze feesten die gebaseerd zijn op de week van zeven dagen.
Opgave
Schrijf een functie wereldkalender waaraan als argument een volgnummer $d$ ($1 \leq d \leq 366$) van een dag uit de wereldkalender moet doorgegeven worden. Veronderstel hierbij een jaar in de wereldkalender waarin er zowel een werelddag als een schrikkeldag voorkomen, zodat het jaar in totaal 366 dagen telt. Volgnummers van dagen worden genummerd vanaf 1, zodat volgnummer 1 correspondeert met zondag 1 januari. De functie moet een string teruggeven van de vorm "weekdag dag maand", die de dag uit de wereldkalender beschrijft met het opgegeven volgnummer. Hierbij worden dus ook de speciale weekdagen werelddag en schrikkeldag in beschouwing genomen. De bedoeling van deze opgave is om zo goed mogelijk gebruik te maken van de structuur van de wereldkalender, zodat je de code voor de functie wereldkalender zo beknopt mogelijk kan houden.
Voorbeeld
>>> wereldkalender(1)
'zondag 1 januari'
>>> wereldkalender(32)
'woensdag 1 februari'
>>> wereldkalender(62)
'vrijdag 1 maart'
>>> wereldkalender(92)
'zondag 1 april'
>>> wereldkalender(182)
'zaterdag 30 juni'
>>> wereldkalender(183)
'schrikkeldag 31 juni'
>>> wereldkalender(184)
'zondag 1 juli'
>>> wereldkalender(275)
'zondag 1 oktober'
>>> wereldkalender(333)
'dinsdag 28 november'
>>> wereldkalender(365)
'zaterdag 30 december'
>>> wereldkalender(366)
'werelddag 31 december'