Biorąc pod uwagę listę działań oraz ich datę / godzinę rozpoczęcia, wydrukuj kalendarz ASCII-art przedstawiający działania w odpowiednich dniach. Wszystkie działania odbywają się w tym samym miesiącu, żadne dwa działania nie będą miały tego samego dnia, a wszystkie działania mieszczą się w polu kalendarza.
Kalendarz ma datę w lewym górnym rogu każdego pola, pola mają szerokość 9 pól i wysokość 5 pól, otoczone -
i |
. Dwuliterowy skrót oznaczający dzień tygodnia jest wyśrodkowany nad pierwszym rzędem, a tygodnie rozpoczynają się od niedzieli.
Na przykład biorąc pod uwagę następujące działania:
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
Wydrukuj ten odpowiedni kalendarz:
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 | | | |
| | | | | | | |
-----------------------------------------------------------------------
Wyjaśnienia
- Słowa harmonogramu (pasujące [A-Za-z] +) zostaną oddzielone pojedynczym odstępem między nimi (jak w przykładzie).
- Wystarczy podzielić tekst na granice słów. Nie ma potrzeby dzielenia wyrazów.
- Jeśli luty rozpocznie się w niedzielę w roku przestępnym, będziesz mieć tylko cztery wiersze kalendarza.
- Jeśli 31-dniowy miesiąc (np. Sierpień) rozpocznie się późno w tygodniu, być może trzeba wydrukować sześć wierszy kalendarza.
I / O i reguły
- Twój kod musi obsługiwać daty przynajmniej między kalendarzem gregoriańskim
0001-01-01
i9999-12-31
w nim, w tym, odpowiednio, lata przestępne. Na przykład, jeśli podano dane wejściowe2016-02-13 9:00am Test
, kalendarz wyjściowy powinien mieć 29 lutego. - Format daty wejściowej może być w dowolnym żądanym formacie. ISO 8601,
datetime
obiekt, szczególnie sformatowany ciąg znaków itp. Analiza wejściowa nie jest interesującą częścią tego wyzwania. - Wejście i wyjście może odbywać się dowolną dogodną metodą .
- Wiodące / końcowe znaki nowej linii lub inne białe znaki są opcjonalne, pod warunkiem, że znaki są odpowiednio ustawione.
- Dopuszczalny jest pełny program lub funkcja. Jeśli funkcja, możesz zwrócić dane wyjściowe zamiast je drukować.
- Dane wyjściowe mogą być wysyłane do konsoli, zwracane jako lista ciągów, zwracane jako pojedynczy ciąg itp.
- Standardowe luki są zabronione.
- To jest golf golfowy, więc obowiązują wszystkie zwykłe zasady gry w golfa, a wygrywa najkrótszy kod (w bajtach).
1752-09-02 - 09:00am - Wife's Birthday Tomorrow (14th!)