我有这个月底到期的任务,我已经完成了一半。我们必须使用 Zeller 的同余性来计算 1st 登陆的星期几。从那时起(并考虑闰年),您必须使用循环打印出相应年份的日历。老师说这应该是一个非常短的程序,我们不应该尝试暴力破解程序的逻辑(基本上不要每个月使用一堆 if else 和循环)。我已经有了数学计算和闰年部分,但由于多种原因,我无法理解如何使这个 for 循环工作:
- 我将如何考虑每个月的空格?就像我实际需要多少个嵌套循环一样?
- 我是否需要为闰年、31 天的月份和 30 天的月份等编写不同的循环,还是可以用 1 个巨大的嵌套循环来处理所有这些?
例如,我刚开始编写一个 for 循环,只是想看看我是否可以打印出没有任何特殊格式(空格、月份名称、日期等)的典型 31 天日历。这是我使用 for 循环的第一个测试:
for(int i = 1; i < 31; i++)
{
for(int j = 0; j < 7; j++)
{
System.out.print(i + "\t");
i++;
if(j == 6){
i--;}
if(i > 31)
{
break;
}
}
System.out.print("\n");
}
使用它多个月和空格的逻辑是什么。我欢迎所有帮助,但请不要给我源代码。我希望用我编写的代码完成这项工作,就像我说的,这也是一项任务,我不会真正从复制和粘贴代码中学习。就我需要使用的逻辑向我说一下吧。对于特殊情况,我可以处理所有其他条件。多谢你们。