输入一个日期,在控制台输出日历
演示代码
Calendar比较难理解的误区:可以看这篇文章->Calendar最大最难理解的误区
/** * */
package com.liangrui.javebase;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;
/** * @author liangrui * @date 2020年1月10日 上午12:28:17 * @version 1.0.0 * @description 输入一个日期,在控制台输出日历 */
public class DateToCalendar {
public static void main(String[] args) throws ParseException {
System.out.println("请输入日期(格式:2020-9-10):");
Scanner scanner=new Scanner(System.in);
//输入字符串格式 的日期
String dateString=scanner.nextLine();
DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
//将字符串格式日期转换成日期格式
Date date=dateFormat.parse(dateString);
//创建日历
Calendar calendar=new GregorianCalendar();
//将日期加入日历
calendar.setTime(date);
//获取输入日期在该月的天数
int day=calendar.get(Calendar.DAY_OF_MONTH);
//获取输入日期月的总天数
int days=calendar.getActualMaximum(Calendar.DATE);
//输出星期
System.out.println("日\t一\t二\t三\t四\t五\t六");
//设置当前天为这个月的1号
calendar.set(Calendar.DAY_OF_MONTH, 1);
//查看输入日期为星期几,从而遍历输出日历1号前面的空白
for (int i = 0; i < calendar.get(Calendar.DAY_OF_WEEK)-1; i++) {
System.out.print("\t");
}
//遍历月份,输出日历
for (int i = 1; i <= days; i++) {
//如果遍历的日子为输入的日子
if (day==calendar.get(Calendar.DAY_OF_MONTH)) {
System.out.print(calendar.get(Calendar.DAY_OF_MONTH)+"*\t");
}else {
System.out.print(calendar.get(Calendar.DAY_OF_MONTH)+"\t");
}
//到达周六换行
if (calendar.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY) {
System.out.println();
}
//日期+1天
calendar.add(Calendar.DAY_OF_MONTH, 1);
}
}
}
还没有评论,来说两句吧...