题目:
编写一个程序输出日历。该程序必须实现按下列方式输出某月信息的方法。该方法的参
数为该月的天数和第一个星期日的日期。下面是当参数值为31和6时的输出结果:
import java.util.Scanner;
public class abc {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int total = sc.nextInt();//总天数
int day = sc.nextInt();//第一个星期日的日期
Object[] date = new Object[42];
date[7] = day;
//处理前半段
int j=1;
for (int i=6;i>=0;i--){
date[i]=day-j;
j++;
if ((int)date[i]<=0){
date[i]=' ';
}
}
//处理后半段
int m=1;
for (int i=8;i<=41;i++){
if ((day+m)<=total){
date[i]=day+m;
m++;
}
}
//打印输出
System.out.println(" Sun Mon Tue Wed Thu Fri Sat");
System.out.println("+-------+-------+-------+-------+-------+-------+-------+");
for(int i=0;i<date.length;i++) {
if (date[i]==null){
date[i]=' ';
}
if (i==6||i==13||i==20||i==27||i==34||i==41){
System.out.println("|\t"+date[i]+"\t|");
}
else {
System.out.print("|\t"+date[i]+"\t");
}
}
System.out.println("\n+-------+-------+-------+-------+-------+-------+-------+");
}
}