我们通过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方法
}
}