アクティビティのリストとその開始時刻/日付を指定して、適切な日のアクティビティを示すASCIIアートカレンダーを出力します。すべてのアクティビティは同じ月に行われることが保証され、同じ日に2つのアクティビティが行われることはありません。また、すべてのアクティビティはカレンダーボックスに収まることが保証されます。
カレンダーの日付は各ボックスの左上隅にあり、ボックスは幅9スペース、高さ5スペースで、で囲まれ-
てい|
ます。曜日の2文字の略語は最初の行の上に中央揃えされ、週は日曜日から始まります。
たとえば、次のアクティビティがあるとします。
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] +に一致)は、それらの間に1つのスペースで区切られます(例のように)。
- 単語の境界でテキストを分割するだけで十分です。単語をハイフネーションする必要はありません。
- 2月がうるう年以外の日曜日に始まる場合、カレンダー行は4つしかありません。
- 31日間の月(8月など)が週の後半に始まる場合、6行のカレンダー行を出力する必要があります。
I / Oとルール
- あなたのコードは、間に少なくとも日付を処理しなければならない
0001-01-01
し、9999-12-31
必要に応じて、うるう年を含め、グレゴリオ暦で。たとえば、inputを指定した場合2016-02-13 9:00am Test
、出力カレンダーには2月29日が必要です。 - 入力日付形式は任意の形式にすることができます。ISO 8601、
datetime
オブジェクト、特にフォーマットされた文字列など。入力の解析は、この課題の興味深い部分ではありません。 - 入力と出力は、任意の便利な方法で行うことができます。
- 文字が適切に整列している場合、先頭または末尾の改行またはその他の空白はオプションです。
- 完全なプログラムまたは機能のいずれかが受け入れられます。関数の場合、出力する代わりに出力を返すことができます。
- コンソールへの出力、文字列のリストとして返される、単一の文字列として返されるなど。
- 標準的な抜け穴は禁止されています。
- これはコードゴルフなので、通常のゴルフルールがすべて適用され、最短のコード(バイト単位)が勝ちます。
1752-09-02 - 09:00am - Wife's Birthday Tomorrow (14th!)