java 显示每个月的日历

从今天开始,每天写一两个小程序,目的是为了熟悉java的应用,不能光学基础了,记不住

刚开始写日历的时候不知怎么下手,从网上找了一个,然后依葫芦画瓢,大致写了下来

public class lll {

	public static void main(String[] args) throws ParseException{
	    SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM");
	    System.err.println("请输入查询月份");
	    Scanner sc = new Scanner(System.in);
	    String dataValue = sc.next();
	    Date date = sf.parse(dataValue);
	    System.err.println(sf.format(date));
	    if(sc != null){
	    	sc.close();
	    }
	    getData(date);
	}
	
	public static void getData(Date newData){
		Calendar cad = Calendar.getInstance();
		cad.setTime(newData);
		int days = cad.getActualMaximum(Calendar.DAY_OF_MONTH);
		int [][]array = new int[6][7];
		for(int i=0;i<days;i++){
			cad.set(Calendar.DAY_OF_MONTH, i+1);
			int weeks = cad.get(Calendar.WEEK_OF_MONTH);
			int day = cad.get(Calendar.DAY_OF_WEEK);
			array[weeks-1][day-1] = i+1;
		}
		String []week = {"日","一","二","三","四","五","六"};
		for(String w:week){
			System.err.print(w+"\t");
		}
		System.err.println();
		for(int i=0;i<=array.length-1;i++){
			for(int j=0;j<=array[i].length-1;j++){
				if(array[i][j]!=0){
					System.err.print(array[i][j]);
				}
				System.err.print("\t");
				if((j+1)%7 == 0){
					System.err.println();
				}
			}
		}	
	}

}
请输入查询月份
2018-02
2018-02

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

写这个程序的时候发现以前关于Data和Calender的用法忘的差不多了。。。

现在我就总结一下所用的方法吧

首先就是 输入和输出了。 以前所用的输出是System.out.println(),而这次用的是System.err.println(),这两者有什么区别呢?首先就能发现的是打印出的颜色不一样,第二个打印的是红色。其次第一个输出有缓存,第二个立即输出。

关于输入,我们用Scanner类来获取用户的输入,首先呢,我们先创建一个Scanner对象,然后通过Scanner类的next方法或nextLine方法获取输入的字符串

 关于Date类  Java提供Date类来封装日期和时间,用SimpleDateFormat来确定我们想要的日期格式,当我们想把一个日期字符串转化成我们先要的格式时,可以先转化成Date,然后转化成其他格式,说的有些不清楚,我把代码写下来

 SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM");
 Date date = sf.parse(dataValue); //把字符串转化为Date
System.err.println(sf.format(date));//输出

接下来就是关于Calender类了

Calender类是一个抽象类,当我们使用这个类时,用getInstance方法创建。这个小程序,我们需要创建一个指定日期的Calender类的对象,所以使用了setTime(Date date)方法,也可以使用set()方法,根据参数类型决定

剩下的就很简单了。。。

想学好,不能只看啊

猜你喜欢

转载自blog.csdn.net/qq_35815781/article/details/79372179