版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40646143/article/details/83033804
package com.data;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;
/**
* 通过用户在控制台输入获取当月日历 并着重显示当月第几天 制作可视化日历
*/
public class ViewCalendar {
public static void main(String[] args) {
System.out.println("请输入时间,格式年-月-日");
Scanner scanner = new Scanner(System.in);
while (true) {
try {
//创建用户输入的控制台
String next = scanner.next();
//格式化用户时间
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
//将用户输入的时间转化为Date类型
Date parse = format.parse(next);
//创建日历类对象
Calendar calendar = new GregorianCalendar();
//把当前时间传给日历类Canlendar
calendar.setTime(parse);
//设置变量这个月的第几天
int i2 = calendar.get(calendar.DATE);
//把当前时间变为几月1号 便于查找星期几是一号
calendar.set(Calendar.DATE, 1);
//获取星期一属于周几 --是按照星期天是1 星期一是2 ... 来排序的
int week = calendar.get(Calendar.DAY_OF_WEEK);
//获取当月的最后一天
int actualMaximum = calendar.getActualMaximum(calendar.DATE);
System.out.println("日\t一\t二\t三\t四\t五\t六");
for (int i = 1; i <week ; i++) {
System.out.print("\t");
}
for (int i = 1; i <= actualMaximum; i++) {
if (i2==i){
System.out.print("*");
}
System.out.print(i+"\t");
//获取当前的星期几
int i1 = calendar.get(calendar.DAY_OF_WEEK);
//每当为一周就换行
if (i1==Calendar.SATURDAY) {
System.out.println("");
}
//每次循环日+1
calendar.add(Calendar.DATE,1);
}
} catch (ParseException e) {
System.out.println("输入错误,请按照年-月-日的格式");
continue;
}
}
}
}
效果图如下