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 XX
*
*/
public class VisualCalendar {
public static void main(String[] args) {
/**
* 控制台输入
*/
System.out.println("请输入日期(格式为2030-3-10):");
@SuppressWarnings("resource")
Scanner input = new Scanner(System.in);
String temp = input.nextLine();
//String temp ="2030-2-10";
/**
* 将输入的字符串日期转换为标准日历
*/
DateFormat format =new SimpleDateFormat("yyyy-MM-dd"); //创建指定日期格式对象
try {
Date date = format.parse(temp); //创建日期 将日期字符串temp转换为指定格式
Calendar calendar =new GregorianCalendar(); //创建标准日历对象
calendar.setTime(date); //将日期数据设置为日历
int day = calendar.get(Calendar.DATE); //获取并标记当前日期的天数
calendar.set(Calendar.DATE, 1); //日历的日期需从1号开始打印
/**
* 日历打印
*/
System.out.println(calendar.get(Calendar.DAY_OF_WEEK)); //当月日期是第几天星期几
int maxDate = calendar.getActualMaximum(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==day){
System.out.print("*"); //做标记
}
System.out.print(i+"\t");
int w = calendar.get(Calendar.DAY_OF_WEEK);
if(w==Calendar.SATURDAY){
System.out.println(); //遇到周六换行
}
calendar.add(Calendar.DATE, 1); //天数加1
}
}
catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
可视化日历程序----Date时间类 Calendar日历类的应用
最新推荐文章于 2021-02-13 03:43:46 发布