package TextDate;
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 Administrator
/
public class TextVisualCalendar {
public static void main(String[] args){
System.out.println(“请输入日期(按照格式:1999-12-31)”); // 输入日期
Scanner scanner = new Scanner(System.in); //Scanner类接受键盘输入
String temp = scanner.nextLine(); //nextLine()方法字面上有扫描一整行的意思,它的结束符只能是Enter键,
//即nextLine()方法返回的是Enter键之前没有被读取的所有字符,它是可以得到带空格的字符串的。
DateFormat format = new SimpleDateFormat(“yyyy-MM-dd”);//年月日的构建器
try{
Date date =format.parse(temp); // 字符串转化成时间
Calendar calendar= new GregorianCalendar(); // 父类指向子类
calendar.setTime(date); //setTimeout()方法用来指定某个函数或者字符串在指定的毫秒数之后执行。
int day = calendar.get(Calendar.DATE); //定义获取那一天的日期
calendar.set(Calendar.DATE,1); // 设为当前月的1号
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(wCalendar.SATURDAY){
// if(w7){
System.out.print(’\n’); //日期遇到星期六,换一行
}
calendar.add(calendar.DATE,1); //加一天,变为这个月的第二天
}
}catch(ParseException e){
e.printStackTrace(); // 手动异常
}
}
结果如下: