O algoritmo, a seguir, calcula em que dia da semana cai um determinado dia, mês e ano;
Se m >= 3 então m recebe m menos 2 e x recebe 8. Senão a recebe a menos 1 e x recebe 13. res = (x + d + (31*m) div 12 + (5*a) div 4 - (3*(1 + a div 100) div 4)) mod 7. |
Se você não quiser envolver valores grandes no cálculo, então utilize a expressão:
res = (x + d + 2*m + (7*m) div 12 + a mod 7 + a div 4 mod 7 - (3*(1 + a div 100)) div 4 mod 7) mod 7. |
No algoritmo d = dia, m = mês, a = ano e para res existe a seguinte correspondência:
res | dia da semana |
---|---|
0 | sábado |
1 | domingo |
2 | segunda-feira |
3 | terça-feira |
4 | quarta-feira |
5 | quinta-feira |
6 | sexta-feira |
Links externos:
Exemplo de Entrada:
2007 4
Exemplo de Saída:
/===========================\ | ABR 2007 | ============================= |DOM|SEG|TER|QUA|QUI|SEX|SAB| |---+---+---+---+---+---+---| | 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| | | | | | \===========================/
Observações:
O objetivo dessa atividade é treinar o uso de laços (while,for).
Logo, você deve usar laços sempre que possível!
Não use coisas do tipo: printf("|---+---+---+---+---+---+---|");