Враховуючи перелік заходів та час / дату їх початку, виведіть ASCII-графічний календар із зазначенням заходів у відповідні дні. Усі заходи гарантовано проводяться в одному місяці, два дні не будуть проводитися в один і той же день, і всі заходи гарантовано вписуються в поле календаря.
У верхньому лівому куті кожного вікна в календарі вказано дату, поля - 9 пробілів завширшки на 5 пробілів, оточені -
і |
. Двобуквенне абревіатура для дня тижня зосереджено вище першого ряду, а тижні починаються з неділі.
Наприклад, враховуючи такі види діяльності:
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
Виведіть цей відповідний календар:
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 | | | |
| | | | | | | |
-----------------------------------------------------------------------
Роз'яснення
- Слова розкладу (відповідність [A-Za-z] +) буде розмежовано одним проміжком між ними (як у прикладі).
- Розщеплення тексту на межі слів достатньо. Немає потреби в переносі слова.
- Якщо лютий розпочнеться у неділю в неробочий рік, у вас буде лише чотири рядки календаря.
- Якщо 31-денний місяць (наприклад, серпень) починається наприкінці тижня, можливо, доведеться вивести шість рядків календаря.
I / O та правила
- Ваш код повинен обробляти дані по крайней мере , між
0001-01-01
і9999-12-31
за григоріанським календарем, в тому числі і високосні роки , у відповідних випадках. Наприклад, якщо дано вхідний2016-02-13 9:00am Test
календар, вихідний календар повинен мати 29 лютого. - Формат дати введення може бути у будь-якому бажаному форматі. ISO 8601,
datetime
об'єкт, особливо відформатований рядок тощо. Аналіз вводу - не цікава частина цього завдання. - Введення та вихід можна будь-яким зручним способом .
- Провідні / остаточні рядки чи інші пробіли необов’язкові, за умови, що символи розташовуються належним чином.
- Прийнятна або повна програма, або функція. Якщо функція, ви можете повернути вихід, а не надрукувати його.
- Вихід може бути на консолі, повернутий у вигляді списку рядків, повернутий як окремий рядок тощо.
- Стандартні лазівки заборонені.
- Це код-гольф, тому застосовуються всі звичайні правила гольфу, і найкоротший код (у байтах) виграє.
1752-09-02 - 09:00am - Wife's Birthday Tomorrow (14th!)