Kalendersystemen werken doorgaans met cyclische tijdsperiodes om datums voor te stellen die specifieke dagen in de kalender aanduiden. Onze Gregoriaanse kalender gebruikt bijvoorbeeld dagen, maanden en jaren als tijdsperiodes.

Quiringa
Oostelijke zijde van het Stella C monument te Quiriguá (Guatemala) dat de mythologische referentiedatum aangeeft van 0 baktuns, 0 katuns, 0 tuns, 0 uinals en 0 kins. Deze datum komt in de (proleptische) Gregoriaanse kalender overeen met 11 augustus 3114 voor Christus.

De lange telling van de Mayakalender werkt daarentegen niet met drie maar vijf tijdsperiodes. Een dag wordt een kin genoemd, en een tijdsperiode van 20 kin is een uinal. Verder gaan er 18 uinals in een tun, 20 tun in een katun, en 20 katun in een baktun. Er zit geen bovengrens op het aantal baktun, net zoals er in de Gregoriaanse kalender geen bovengrens zit op het aantal jaren.

Verder worden tijdsperiodes van een datum uit de Gregoriaanse kalender van kort naar lang (dagen, maanden, jaren) weergegeven, terwijl die van de Mayakalender van lang naar kort (baktuns, katuns, tuns, uinals, kins) weergegeven worden. Ten slotte nummert de Gregoriaanse kalender individuele waarden voor tijdsperiodes vanaf 1, en de Mayakalender vanaf 0.

Opgave

Druk een dag weergegeven als datum in de Gregoriaanse kalender uit als de corresponderende datum in de Mayakalender. Zo komt de Gregoriaanse datum 12/12/2012 bijvoorbeeld overeen met de datum 12.19.19.17.11 in de Mayakalender. Datums worden altijd voorgesteld als een string die de individuele waarden voor elk van de tijdsperiodes oplijst. De individuele waarden worden hierbij telkens van elkaar gescheiden door eenzelfde karakter. Elk karakter kan als scheidingsteken gebruikt worden, zolang het maar geen cijfer is. De individuele waarden zijn natuurlijke getallen, maar kunnen weergegeven worden met een willekeurig aantal voorloopnullen die verder geen betekenis hebben. We houden bovendien enkel rekening met dagen vanaf de Gregoriaanse datum 01/01/1970. Hiervoor ga je als volgt te werk:

Voorbeeld

>>> dmj('01/01/1970')
(1, 1, 1970)
>>> dmj('20-7-1988')
(20, 7, 1988)
>>> dmj('00012+00012+02012')
(12, 12, 2012)
>>> dmj('21 12 2012')
(21, 12, 2012)
>>> dmj('26.03.2407')
(26, 3, 2407)

>>> verstreken('01/01/1970')
0
>>> verstreken('20-7-1988')
6775
>>> verstreken('00012+00012+02012')
15686
>>> verstreken('21 12 2012')
15695
>>> verstreken('26.03.2407')
159695

>>> mayadatum('01/01/1970')
'12/17/16/7/5'
>>> mayadatum('20-7-1988', scheidingsteken='/')
'12/18/15/4/0'
>>> mayadatum('00012+00012+02012', scheidingsteken='-')
'12-19-19-17-11'
>>> mayadatum('21 12 2012', scheidingsteken='+')
'13+0+0+0+0'
>>> mayadatum('26.03.2407')
'14.0.0.0.0'