1 使用到的类: Date DateFormat Calendar
2 代码:
public static void main(String[] args) throws ParseException {
System.out.println("请输入日期,eg:2013-11-23");
Scanner scanner = new Scanner(System.in);
String dateStr = scanner.nextLine();
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date = dateFormat.parse(dateStr);
//Date date = new Date();// 当前日期
Calendar calendar = new GregorianCalendar();
calendar.setTime(date);
int today = calendar.get(Calendar.DATE);
//System.out.println(today);
// 得到当前月一共的天数
int actualDays = calendar.getActualMaximum(Calendar.DATE);
// 得到当天是周几:
//int dayofweek = calendar.get(Calendar.DAY_OF_WEEK);
//System.out.println("dayofweek: " + dayofweek); // 真实中 今天是是6 今天是周五
calendar.set(Calendar.DATE, 1); // 看这个月1号是周几
int firstDayOfweek = calendar.get(Calendar.DAY_OF_WEEK);
//System.out.println("dayofweek: " + firstDayOfweek); // 结果是5 是周四
System.out.print("日\t一\t二\t三\t四\t五\t六");
System.out.println();
for(int i=1; i<firstDayOfweek; i++ ){
System.out.print("\t");
}
for(int i=1; i<=actualDays; i++) {
if(today == i){
System.out.print("*" + i + "\t");
}else{
System.out.print(i + "\t");
}
/*if(i%7 == 0) {
System.out.println();
}*/
if(calendar.get(Calendar.DAY_OF_WEEK) == 7){ // 以下代码仅仅是控制换行作用 取代i方式来换行
System.out.println();
}
calendar.add(Calendar.DATE, 1);
}
}
3 结果: