日期类统一使用案例--打印日历

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

 
 
 

猜你喜欢

转载自chengjianxiaoxue.iteye.com/blog/2179465