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 结果: