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("请输入日期(按照格式:2030-3-10):");
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);
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.print('\n');
}
calendar.add(Calendar.DATE, 1);
}
} catch (ParseException e) {
e.printStackTrace();
}
}
}
笔记:
1、Calendar是一个抽象类,不能直接New一个实例,可以有两种方法得到它的实例:
(1)获取时间
Calendar cal = new GregorianCalendar();
(2)add()方法,时间计算
calendar.add(Calendar.DATE, 1);
(3)设置时间:set()方法
2、DateFormat
用途:定义日期时间格式,格式化日期时间参数
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
3、Scanner
用法:常用于控制台的输入,当需要使用控制台输入时即可调用这个类
Scanner sc=new Scanner(System.in);
(1)nextInt()只读取数值
sc.nextInt();
(2)next()方法遇到第一个扫描有效字符,即第一个非空格非换行符后面开始,一直获取到下一个空格,换行符之前的,单个字符串
sc.next();
(3)nextLine()可以扫描到一行内容并作为一个字符串而被获取到
sc.nextLine();