Professional Documents
Culture Documents
08 e 09
Criando calendário
Atividade a ser realizada em duplas.
Prazo final: Sexta-feira, 26 de Outubro de 2018 – 12h (meio dia)
Submeter o arquivo .py
Atenção! Não é permitido o uso da biblioteca Calendar ou semelhante.
Vamos ao problema de exibir o calendário mensal de
qualquer mês e ano entre 1800 e 2099.
Escreva uma função chamada diaSemana que recebe como parâmetro o mês, dia e
ano (todos do tipo inteiro) e retorna o dia da semana para o primeiro dia. Considere
o seguinte algoritmo.
Para determinar o dia da semana dada o mês, dia e ano (todos do tipo inteiro):
1. Seja variável century_digits = os dois primeiros dígitos do ano;
2. Seja a variável year_digits = os dois últimos dígitos do ano;
3. Seja a variável value = year_digits + (year_digits//4);
4. Se century_digits == 18 então adiciona 2 a value. Caso contrário, se century_digits == 20
adiciona 6 a value.
5. Se o mes é igual a janeiro e o ano não é bissexto, adiciona 1 a value. Caso contrário,
a. Se o mes é igual a Fevereiro e o ano é bissexto, adiciona 3 a value. Se o ano não é
bissexto adiciona 4 a value. Caso contrário,
b. Se o mes é igual a Março ou Novembro adiciona 4 a value. Caso contrário,
c. Se o mes é igual a Abril ou Julho adiciona 0 a value. Caso contrário,
d. Se o mes é igual a Maio adiciona 2 a value. Caso contrário,
e. Se o mes é igual a Junho adiciona 5 a value. Caso contrário,
f. Se o mes é igual a Agosto adiciona 3 a value. Caso contrário,
g. Se o mes é igual a Outubro adiciona 1 a value. Caso contrário,
h. Se o mes é igual a Setembro ou Dezembro adiciona 6 a value.
6. A variável value é baseado no dia do mês. Mas desejamos para o dia da semana:
a. value= (value + dia) % 7
7. Se value é igual a 1 então o dia da semana é Domingo. Caso contrário,
a. Se value é igual a 2 então o dia da semana é Segunda. Caso contrário,
b. Se value é igual a 3 então o dia da semana é Terça. Caso contrário,
c. Se value é igual a 4 então o dia da semana é Quarta. Caso contrário,
d. Se value é igual a 5 então o dia da semana é Quinta. Caso contrário,
e. Se value é igual a 6 então o dia da semana é Sexta. Caso contrário,
f. Se value é igual a 0 então o dia da semana é Sábado.
Para o dia da semana considere a seguinte representação:
1 2 3 4 5 6 0