Dato un elenco di attività e la loro data / ora di inizio, emette un calendario di arte ASCII che mostra le attività nei giorni appropriati. Tutte le attività sono garantite nello stesso mese, non ci saranno due attività nello stesso giorno e tutte le attività sono garantite per rientrare nella casella del calendario.
Il calendario ha la data nell'angolo in alto a sinistra di ogni riquadro, le caselle sono larghe 9 spazi per 5 alte, circondate da -e |. L'abbreviazione di due lettere per il giorno della settimana è centrata sopra la prima riga e le settimane iniziano con domenica.
Ad esempio, date le seguenti attività:
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
Stampa questo calendario corrispondente:
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 | | | |
| | | | | | | |
-----------------------------------------------------------------------
chiarimenti
- Le parole del programma (corrispondenti a [A-Za-z] +) saranno delimitate da un singolo spazio tra loro (come nell'esempio).
- Dividere il testo sui confini delle parole è sufficiente. Non c'è bisogno di parole sillabanti.
- Se febbraio inizia di domenica in un anno non bisestile, avrai solo quattro righe di calendario.
- Se un mese di 31 giorni (ad es. Agosto) inizia alla fine della settimana, potrebbe essere necessario generare sei righe di calendario.
I / O e regole
- Il codice deve gestire le date almeno tra
0001-01-01e9999-12-31nel calendario gregoriano, compresi gli anni bisestili, a seconda dei casi. Ad esempio, se viene fornito un input2016-02-13 9:00am Test, il calendario di output dovrebbe avere il 29 febbraio. - Il formato della data di input può essere in qualsiasi formato desiderato. ISO 8601, un
datetimeoggetto, una stringa particolarmente formattata, ecc. L'analisi dell'input non è la parte interessante di questa sfida. - Ingresso e uscita possono essere con qualsiasi metodo conveniente .
- Le linee guida iniziali / finali o altri spazi bianchi sono opzionali, a condizione che i caratteri siano allineati in modo appropriato.
- È accettabile un programma completo o una funzione. Se una funzione, è possibile restituire l'output anziché stamparlo.
- L'output può essere sulla console, restituito come un elenco di stringhe, restituito come singola stringa, ecc.
- Sono vietate le scappatoie standard .
- Si tratta di code-golf, quindi si applicano tutte le normali regole del golf e vince il codice più breve (in byte).
1752-09-02 - 09:00am - Wife's Birthday Tomorrow (14th!)