Java实现输入日期,打印对应月的日历
实验结果如下:
实现代码:
import java.util.Calendar; //导入相关包
import java.util.Date;`import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Scanner;
/**
* 可视化日历
*
* @author 搅碎一池星月
*
*/
public class CalendarText {
public static void main(String[] args) throws Exception {
System.err.println("请输入日期:(按照2020-1-17格式输入)");
Scanner scanner = new Scanner(System.in);
String tempString = scanner.nextLine(); // 获取输入日期字符串
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); // 定义时间格式
Date date = dateFormat.parse(tempString); // 将字符串转化为date
Calendar calendar = new GregorianCalendar();
calendar.setTime(date); // 设置日历类时间为输入时间
int startdate = calendar.get(Calendar.DATE); // 记录初始日期
calendar.set(Calendar.DATE, 1); // 设置为1号
int maxDate = calendar.getMaximum(Calendar.DATE); // 每月最大天数
System.out.println("日\t一\t二\t三\t四\t五\t六");
for (int i = 1; i < calendar.get(Calendar.DAY_OF_WEEK); i++) // 打印一号前面的空格
{
System.out.print("\t");
}
for (int i = 1; i <= maxDate; i++) {
if (i == startdate) { //标记当前日期
System.out.print("*");
}
System.out.print(i + "\t");
if (calendar.get(Calendar.DAY_OF_WEEK) == 7) { // 周六换行
System.out.println();
}
calendar.add(Calendar.DATE, 1); // 打印一次,日期天数加一
}
}
}
对Date相关类有一个大致的了解,会应用关于日期的计算,了解日期计算的机制。