**
输入年和月,在控制台打印出这个月的日历,不考虑相邻月份
**
要求:
1 不使用循环
2 可以使用java.util.Date或java.util.Calendar类计算这个月的1号是星期几
详细步骤如下:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入你想要测试的年份:");
int year = sc.nextInt();
System.out.print("请输入你想要测试的月份:");
int month=sc.nextInt();
int dayOfWeek_1;
Date firstDay = new Date(year-1900,month-1,1);
dayOfWeek_1 = firstDay.getDay();
System.out.println("今天是星期"+dayOfWeek_1);
if(dayOfWeek_1 == 0) {
dayOfWeek_1 = 7;
}
计算出当前的日期为当月的星期几,如:8月1日为星期四
//打印到几为止?计算这个月共有几天(totalDays)
int totalDays = 31;
switch(month) {
case 2:
totalDays = 28;
if(year % 100 != 0 && year %4 ==0 || year % 400 ==0 ) {
totalDays++;
}
break;
case 4:
case 6:
case 9:
case 11:
totalDays = 30;
break;
default:
break;
}
打印出当前年份的月数
//打印日历,过程要注意何时换行,(逢7换行)
System.out.println("一\t二\t三\t四\t五\t六\t七");
//打印若干空格(一周为七天,dayOfWeek_1 - 1,最多六个空格)
//定义一个空格计数器,打印六个空格
final String SPACE = "\t";
int spaceCounter = 0; //空格计数器
int spaceRequired = dayOfWeek_1 - 1; //需要打印的空格数量
if(spaceCounter < spaceRequired) {
System.out.print(SPACE); //打印一次空格
spaceCounter++; //计数器+1
}
if(spaceCounter < spaceRequired) {
System.out.print(SPACE);
spaceCounter++;
}
if(spaceCounter < spa