Menu
Coddy logo textTech

Recapitulação - Grade de Calendário

Parte da seção Lógica e Fluxo do Journey de Swift da Coddy — lição 11 de 56.

challenge icon

Desafio

Médio

Leia três números inteiros de três linhas: days (o total de dias em um mês, de 28 a 31), start_dow (0 = Segunda-feira … 6 = Domingo, o dia da semana em que cai o dia 1º) e cols (o número de colunas a serem impressas).

Imprima uma grade de calendário:

  • Preencha a primeira linha com entradas -- até que o dia da semana se alinhe (um -- por slot inicial)
  • Imprima cada dia de 1 até days, com dois caracteres de largura (use um espaço à esquerda para dias de um único dígito, por exemplo, 1, 10)
  • Use um único espaço entre as células em uma linha
  • Quebre para uma nova linha após cada cols entradas (incluindo o preenchimento)

Para a entrada 30 / 2 / 7, a saída é:

-- --  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

Experimente você mesmo

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

// TODO: construir um array plano de células ("--" + strings de dias),
// depois imprimir as linhas de `cols` células unidas por um único espaço

Todas as lições de Lógica e Fluxo