public class VisualCalendar {
public static void main(String[]args){
System.out.println("请输入日期(按照格式2001-01-03):");
Scanner s=new Scanner(System.in);
String a=s.nextLine();//输入一个时间,以字符串的格式;
DateFormat b=new SimpleDateFormat("yyyy-MM-dd");//两者格式要相等;
try {
Date c=b.parse(a);//核心代码: 把字符串转为时间!!!!
Calendar d=new GregorianCalendar();
d.setTime(c);//这三行代码是为了把字符串转换为calendar类目的是变成计算机能处理的日期
int today=d.get(Calendar.DATE);
d.set(Calendar.DATE, 0);//初始化,让输入的数是1号;
//System.out.println(d.get(Calendar.DAY_OF_WEEK));输入的日期1号是星期几
//System.out.println(d.getActualMaximum(Calendar.DATE));日期所在的月份的最大天数;
System.out.println("日\t一\t二\t三\t四\t五\t六");
for(int i=0;i<d.get(Calendar.DAY_OF_WEEK);i++){//1号在星期几,前面的都打印空字符;
System.out.print("\t");
}
for(int i=1;i<=d.getActualMaximum(Calendar.DATE);i++){//打印本月的天数
if(i==today){
System.out.print("*");//把今天用*表示出来
}
System.out.print(i+"\t");
int w=d.get(Calendar.DAY_OF_WEEK);//获得星期几;
if(w==6)//如果是星期6则换行;
{
System.out.println();
}
d.add(Calendar.DATE,1);//循环一次+一天;
}
} catch (ParseException e) {
// TODO Auto-generated catch block自动填写捕获异常;
e.printStackTrace();
}
}
}