共计 1117 个字符,预计需要花费 3 分钟才能阅读完成。
应用键盘输入日期,输入当月日历
public static void main(String[] args) {Scanner sc = new Scanner(System.in);
System.out.println("请输出日期,比方:2021-06-18");
String strDate = sc.next();// 接管用户输出的日期
//System.out.println("日期是:" + strDate);// 输入日期
System.out.println("日 \t 一 \t 二 \t 三 \t 四 \t 五 \t 六");
java.sql.Date date = java.sql.Date.valueOf(strDate);// 将字符串日期 strDate 转换成 java.sql.Date
Calendar calendar = Calendar.getInstance();// 申明日历类,形式一
//Calendar calendar = new GregorianCalendar();// 申明日历类,形式二
calendar.setTime(date);// 设置日期
//System.out.println(calendar);
int maxDate = calendar.getActualMaximum(Calendar.DATE);// 获取当月最大天数,比方 6 月有 30 天,7 月有 31 天
int day = calendar.get(Calendar.DATE);// 获取以后日
calendar.set(Calendar.DATE, 1);// 设置以后日为 1 号
int num = calendar.get(Calendar.DAY_OF_WEEK);// 获取 1 号是一周中的第几天,比方周日是一周中的第 1 天
int count = num - 1;// 计数器,每 7 天输入换行,包含输入的空区域 num-1
for (int i = 1; i < num; i++) {
// 输出 num 个空区域, 比方 1 号是第一周的中的第 3 天,则 1 号是周二,后面应该输入 2 个空区域
System.out.print("\t");
}
for (int i = 1; i <= maxDate; i++) {if (day == i) {// 如果是以后日,则用 * 标注
System.out.print(i + "*\t");
} else {System.out.print(i + "\t");
}
count++;
if (count % 7 == 0) {
//count 计数器,每 7 个换行
System.out.println();}
}
}
输入后果
请输出日期,比方:2021-06-18
2021-07-18
日 一 二 三 四 五 六
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
正文完