Menu
Coddy logo textTech

復習 - カレンダーグリッド

CoddyのSwiftジャーニー「ロジックとフロー」セクションの一部 — レッスン 11/56。

challenge icon

チャレンジ

中級

3つの行から3つの整数を読み取ります:days(月の総日数、28から31)、start_dow(0 = 月曜日 … 6 = 日曜日、1日が当たる曜日)、および cols(表示する列数)です。

カレンダーのグリッドを出力してください:

  • 最初の行は、曜日が一致するまで -- エントリで埋めます(先行するスロット1つにつき -- を1つ使用)
  • 1 から days までの各日付を、2文字幅で出力します(1桁の日付には 110 のように先頭にスペースを使用します)
  • 行内のセル間には半角スペースを1つ使用します
  • (パディングを含めて)cols エントリごとに行を折り返します

入力が 30 / 2 / 7 の場合、出力は以下のようになります:

-- --  1  2  3  4  5
 6  7  8  9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

自分で試してみよう

let days = Int(readLine()!)!
let startDow = Int(readLine()!)!
let cols = Int(readLine()!)!

// TODO: セルのフラットな配列("--" + 日付文字列)を作成し、
// その後、`cols` 個のセルを半角スペースで結合した行を出力する

ロジックとフローのすべてのレッスン