利用Calendar类打印日历

import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class Test {

	public static void main(String[] args) {
		
		System.out.println("请输入日期(如2018-12-07):");
		Scanner sc=new Scanner(System.in);
		String riqi= sc.next();
		//将接收到的字符串转成日期并设置
		Calendar cal=Calendar.getInstance();
		cal.setTime(java.sql.Date.valueOf(riqi));
		//获取本月第一天是星期几
		int startDay=cal.get(Calendar.DAY_OF_WEEK);
		/*
		 * 日历表头
		 */
		System.out.println("星期天"+"\t星期一"+"\t星期二"+"\t星期三"+"\t星期四"+"\t星期五"+"\t星期六");
		/*
		 * 日历空格 
		 * 记住:星期天是一天的开始
		 */
		for(int i=1;i<startDay+1;i++) {
			System.out.print("\t");
		}
		
		/*
		 * 日历日期
		 * cal.getActualMaximum(Calendar.DATE)   获取本月的最大天数
		 */
		for(int i=0;i<cal.getActualMaximum(Calendar.DATE);i++) {
			System.out.print("  ");
			System.out.print(i+1);
			//如果正好打印到当天对应的日期,则加一个*号
			if((i+1)==cal.get(Calendar.DATE)) 
				System.out.print("*");
			System.out.print("\t");
			//每打印一周换行
			if((startDay+i+1)%7==0) 
				System.out.println();	
		}
		
	}
}

运行效果:

请输入日期(如2018-12-07):
2018-12-07
星期天	星期一	星期二	星期三	星期四	星期五	星期六
						  1	
  2	  3	  4	  5	  6	  7*	  8	
  9	  10	  11	  12	  13	  14	  15	
  16	  17	  18	  19	  20	  21	  22	
  23	  24	  25	  26	  27	  28	  29	
  30	  31	

猜你喜欢

转载自blog.csdn.net/pengzonglu7292/article/details/84875097