获取当月天数的方法

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;  
}

参考:http://blog.csdn.net/tsoTeo/article/details/73603351

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值