做了个可视化的日历程序
package practice;
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;
public class VisualCalendar {
public static void main(String[] args) {
System.out.println("请输入日期:");
Scanner scanner =new Scanner(System.in);//键盘录入
String temp=scanner.nextLine();
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
try {
Date date=format.parse(temp); //将字符串转为时间对象
Calendar calendar = new GregorianCalendar();
calendar.setTime(date); //获取时间
int day =calendar.get(Calendar.DATE);
calendar.set(Calendar.DATE, 1); //将时间设为1号
int max =calendar.getActualMaximum(Calendar.DATE);
System.out.println("日\t一\t二\t三\t四\t五\t六");
for(int i =0;i<calendar.get(Calendar.DAY_OF_WEEK)-1;i++){
System.out.print("\t");
}
for(int i=1;i<=max;i++){
if(i==day){
System.out.print("*");
}
System.out.print(i+"\t");
if(calendar.get(Calendar.DAY_OF_WEEK)==calendar.SATURDAY){ //当前星期等于周六时,换行
System.out.println();
}
calendar.add(Calendar.DATE, 1);
}
} catch (ParseException e) {
e.printStackTrace();
}
}
}
用上了Date类,Calendar类,用来实现时间的设置
用Scanner类来实行键盘录入
最终按格式输入日期即可打印出该月的日历,且用“*”号标出输入的号数。