Geben Sie anhand einer Liste der Aktivitäten und ihrer Startzeit / ihres Startdatums einen ASCII-Kunstkalender aus, in dem die Aktivitäten an den entsprechenden Tagen angezeigt werden. Es wird garantiert, dass alle Aktivitäten im selben Monat stattfinden, dass keine zwei Aktivitäten am selben Tag stattfinden und dass alle Aktivitäten garantiert in das Kalenderfeld passen.
Der Kalender hat das Datum in der oberen linken Ecke jeder Box. Die Boxen sind 9 Felder breit und 5 Felder hoch, umgeben von -
und |
. Die aus zwei Buchstaben bestehende Abkürzung für den Wochentag befindet sich über der ersten Zeile, und die Wochen beginnen mit dem Sonntag.
Zum Beispiel bei folgenden Aktivitäten:
10/5/2018 - 9:00am - Sandbox calendar challenge
10/9/2018 - 9:00am - Post challenge to main
10/10/2018 - 10:00am - Profit
10/31/2018 - 7:30pm - Halloween party
Geben Sie diesen entsprechenden Kalender aus:
Su Mo Tu We Th Fr Sa
-----------------------------------------------------------------------
| |1 |2 |3 |4 |5 |6 |
| | | | | |9:00am | |
| | | | | |Sandbox | |
| | | | | |calendar | |
| | | | | |challenge| |
-----------------------------------------------------------------------
|7 |8 |9 |10 |11 |12 |13 |
| | |9:00am |10:00am | | | |
| | |Post |Profit | | | |
| | |challenge| | | | |
| | |to main | | | | |
-----------------------------------------------------------------------
|14 |15 |16 |17 |18 |19 |20 |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
-----------------------------------------------------------------------
|21 |22 |23 |24 |25 |26 |27 |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
-----------------------------------------------------------------------
|28 |29 |30 |31 | | | |
| | | |7:30pm | | | |
| | | |Halloween| | | |
| | | |party | | | |
| | | | | | | |
-----------------------------------------------------------------------
Klarstellungen
- Die Zeitplanwörter (passend zu [A-Za-z] +) werden durch ein einzelnes Leerzeichen zwischen ihnen begrenzt (wie im Beispiel).
- Das Aufteilen des Textes auf Wortgrenzen ist ausreichend. Keine Notwendigkeit, Wörter zu trennen.
- Wenn der Februar an einem Sonntag in einem Nicht-Schaltjahr beginnt, haben Sie nur vier Kalenderzeilen.
- Wenn ein 31-Tage-Monat (z. B. August) spät in der Woche beginnt, müssen Sie möglicherweise sechs Kalenderzeilen ausgeben.
E / A und Regeln
- Ihr Code muss mindestens Daten zwischen
0001-01-01
und9999-12-31
im Gregorianischen Kalender enthalten, einschließlich der Schaltjahre. Wenn beispielsweise eine Eingabe erfolgt2016-02-13 9:00am Test
, sollte der Ausgabekalender den 29. Februar haben. - Das eingegebene Datumsformat kann in einem beliebigen Format vorliegen. ISO 8601, ein
datetime
Objekt, eine besonders formatierte Zeichenfolge usw. Das Parsen von Eingaben ist nicht der interessante Teil dieser Herausforderung. - Die Ein- und Ausgabe kann auf jede bequeme Weise erfolgen .
- Führende / nachfolgende Zeilenumbrüche oder andere Leerzeichen sind optional, sofern die Zeichen entsprechend ausgerichtet sind.
- Entweder ein vollständiges Programm oder eine Funktion sind akzeptabel. Wenn es sich um eine Funktion handelt, können Sie die Ausgabe zurückgeben, anstatt sie zu drucken.
- Die Ausgabe kann an die Konsole erfolgen, als Liste von Zeichenfolgen, als einzelne Zeichenfolge usw. zurückgegeben werden.
- Standardlücken sind verboten.
- Dies ist Code-Golf, daher gelten alle üblichen Golfregeln, und der kürzeste Code (in Bytes) gewinnt.
1752-09-02 - 09:00am - Wife's Birthday Tomorrow (14th!)