Calendar类实例化的对象 能点用诸多方法。
其中 有
cld.get(field);
set(field, value);
roll(field, amount);
三个方法。
- cld.get(field);
field字段填写日历中的时间段,比如Calendar.DATE、Calendar.MONTH、Calendar.YEAR,DAY_OF_WEEK、DAY_OF_MONTH等。
返回一个int类型的值。
比如要获取今天是几号,实现如下:
Calendar cld = Calendar.getInstance();
int today = cld.get(Calendar.DATE);
要获取今天是本周第几天,实现如下:
Calendar cld = Calendar.getInstance();
int today = cld.get(Calendar.DAY_OF_WEEK);
- set(field, value);
field字段填写日历中的时间段,比如Calendar.DATE、Calendar.MONTH、Calendar.YEAR等。
value字段填写field字段要设置的值。
比如将今天设为1号,实现如下:
Calendar cld = Calendar.getInstance();
cld.set(Calendar.DATE, 1);//将今天设为1号
- cld.roll(field, amount);
field字段填写日历中的时间段,比如Calendar.DATE、Calendar.MONTH、Calendar.YEAR等。
amount字段填写field字段要增加或减少的天数数值。
比如 今天是 6月23日
将今天向前提3天,要得到6月20日,实现如下:
Calendar cld = Calendar.getInstance();
cld.roll(Calendar.DATE, -3);//回滚3天
将今天向后推3天,要得到6月26日,实现如下:
Calendar cld = Calendar.getInstance();
cld.roll(Calendar.DATE, 3);//3天
需要注意的是:
这个方法只对指定的月有效。意思就是:
假如今天是 6月1日,如果你进行了如下操作:
Calendar cld = Calendar.getInstance();
cld.roll(Calendar.DATE, -3);//回滚3天
得到的不是5月29日,而是6月的28日。
根据下面的代码和输出结果理解一下:
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Test {
public static void main(String[] args) {
Calendar cld = Calendar.getInstance();
//获取今天的日期 ----- 6.23
int today = cld.get(Calendar.DATE);
System.out.println("今天是"+today+"号");
//将今天设置为本月1号 ------6.1
cld.set(Calendar.DATE, 1);//将今天设为1号
int today1 = cld.get(Calendar.DATE);
System.out.println("现在,今天是"+today1+"号");
//回1号的到三天前
cld.roll(Calendar.DATE, -3);
int today2 = cld.get(Calendar.DATE);
System.out.println("1号的3天前,是"+today2+"号");
cld.set(Calendar.DATE, today);//将日期设置回今天
//回到三天前
cld.roll(Calendar.DATE, -3);
int today3 = cld.get(Calendar.DATE);
System.out.println("3天前,是"+today3+"号");
cld.set(Calendar.DATE, today);//将日期设置回今天
//去三天后
cld.roll(Calendar.DATE, 3);
int today4 = cld.get(Calendar.DATE);
System.out.println("3天后,是"+today4+"号");
}
}
输出结果
使用
get(field);
set(field, value);
roll(field, amount);
三个方法,就可以获得本月的天数了。
代码如下:
public static int getCurrentMonthLastDay()
{
Calendar cld = Calendar.getInstance();
cld.set(Calendar.DATE, 1);//将今天设为1号
cld.roll(Calendar.DATE, -1);//日期减一天相当于回到了本月的最后一天
int maxDate = cld.get(Calendar.DATE);
return maxDate;
}