我需要一些帮助;我被这种情况困扰了一段时间。我的目标是显示2021年8月的日历表单。我只需要8月份,因为我只想发布一个月的日历,供用户查看开课日期。它显示日历,但我觉得它有一种更有效的方式来编写这种类型的程序,但我不知道如何编写。你能帮帮我吗?
这是我的密码:
public class Calendar {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
System.out.println("\t\tMONTH OF AUGUST 2021");
System.out.println("–––––––––––––––-------------------------––––––––––––––");
System.out.println("\nSun\tMon\tTue\tWed\tThu\tFri\tSat\n");
System.out.println("–––––––––––––––-------------------------––––––––––––––");
int [][]num={{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,31,1,2,3,4}};
for (int i=1; i<num.length;i++){
for(int j=8; j<num[i].length; j++){
num[i][j]=i+j;
}
}
for(int[] a: num){
for(int i:a){
System.out.print(i + "\t");
}
System.out.println("\n");
}
}
}
3条答案
按热度按时间6tdlim6h1#
要在控制台窗口中显示日历(无论哪个月),可以使用以下java方法:
如果您的终端支持转义颜色代码,则日历中您提供的日期将为红色。这种方法还考虑了闰年。只需提供日、月和年的整数值作为参数。应用颜色代码的最后一个参数是可选的。
如果您希望显示8月份,并希望该月份的20号以红色突出显示,则可以拨打以下电话:
控制台窗口可能会显示如下内容:
klr1opcd2#
要提出此解决方案(线性时间复杂度):
使用运行for循环
i
从…起0 to 34
仅在以下情况下打印新行:i != 0 && i % 7 == 0
使用i % 31 + 1
关于当前的数字i
把它限制在一定范围内这有一个复杂而简短的版本(供好奇的人使用)
icomxhvb3#
这里有一个替代方案,它实际上并不更加优雅或高效,但使用了不同的方法(不同的库),并且支持不同的语言:
下面是一些使用示例
该示例使用的输出是