package com.sdut.k3;
import java.util.Calendar;
import java.util.Scanner;
public class WanNianLi {
public static void main(String[] args) {
/*
* 打印万年历
* 要求:输入年,月,打印当月的万年历
* 关键问题
* 1.这个月一共有几天
* |----平年闰年
* 2.该月的第一天是周几
* 3.换行
* |----计数器
* */
//获取输入
Scanner sc = new Scanner(System.in);
System.out.print("请输入年:");
int year = sc.nextInt();
System.out.print("请输入月:");
int month = sc.nextInt();
/*
* 每个月有几天
* 1 3 5 7 8 10 12---31
* 4 6 9 11---30
* 2---28 29
* */
int days = 0;//这个月的总天数
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
case 2:
if((year%4==0 && year%100!=0) || (year%400==0)) { //闰年
days = 29;
} else {
days = 28;
}
break;
}
//System.out.println(days);
/*
* 判断该月的第一天是周几
* */
Calendar cal = Calendar.getInstance();
//将日历对象设置成对应月份的第一天,月份从0开始,要减一
cal.set(year, month-1, 1);
int week = cal.get(Calendar.DAY_OF_WEEK);
//System.out.println(week);
/*
* 打印万年历
* 1.1号之前的空格
* 2.换行--计数器---int count = 0;
* */
System.out.println("日\t一\t二\t三\t四\t五\t六");
int count = 0;
//打印空格
for (int i = 0; i < week-1; i++) {
System.out.print("\t");
count++;
}
//打印日期
for(int i = 1; i <= days; i++) {
System.out.print(i + "\t");
count++;
//每七天换一行
if(count % 7 == 0) {
System.out.println();
}
}
}
}
日期类案例--打印万年历
最新推荐文章于 2025-05-20 22:23:34 发布