从今天开始,每天写一两个小程序,目的是为了熟悉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()方法,根据参数类型决定
剩下的就很简单了。。。
想学好,不能只看啊