我们通过Calendar可以知道关于日期的相关函数。相关属性有YEAR,MONTH,DAY_OF_MONTH,DAY_OF_YEAR等,我们可以从其直接获得属性值,也可以自己来获得属性值。比如我们要知道哪一个年的2月有多少天。我们要用到add方法以及DAY_OF_MONTH属性具体代码如下
import java.util.*; public class dd { public static void main(String args[])throws Exception{ Scanner h=new Scanner(System.in); int year=0; System.out.print("请输入年份:"); year=h.nextInt(); //把输入的值传给year Calendar u=Calendar.getInstance(); //创建Calendar类 u.set(year,2,1); //代表3月1日 u.add(Calendar.DAY_OF_MONTH,-1); //3月1日的日子减了一天 System.out.println("这一年的二月共有"+u.get(Calendar.DAY_OF_MONTH)+"天");//使用get方法来取得天数 } }
接下来SimpleFormat通常用来格式化日期格式,如yyyy-mm-dd-hh等。下面通过一个例子来阐
述关于Calendar以及SimpleFormat的具体应用。比如说要求出某一年的某天是星期几,而且求出这一天是这一年的第几天。编码如下:
package com.itheima; import java.util.Calendar; import java.util.Date; import java.text.SimpleDateFormat; public class Test9 { public static void main(String args[])throws Exception{ String str="2014-1-6"; String s[]=str.split("-"); //把日期按照”_“来进行拆分 int y=Integer.parseInt(s[0]); int m=Integer.parseInt(s[1]); int d=Integer.parseInt(s[2]);//拆分后的数组元素分别赋值 boolean nunnian=false; if(m<3){ //由于存在闰年的原因等,这里要做相应的调整。 m+=12; --y; } int w= (1+d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7; //公式的原理这里不深究了。 char h='0'; switch(w){ case 0:{ h='天'; break; } case 1:{ h='一'; break; } case 2:{ h='二'; break; } case 3:{ h='三'; break; } case 4:{ h='四'; break; } case 5:{ h='五'; break; } case 6:{ h='六'; break; } } System.out.println("这一天是星期"+h); SimpleDateFormat f=new SimpleDateFormat("yyyy-MM-dd"); Date k=f.parse(str); //使得日期格式化并且赋值给Date Calendar c=Calendar.getInstance(); c.setTime(k); //set方法 System.out.println("这天是这年的第"+c.get(Calendar.DAY_OF_YEAR)+"天");//get方法 } }