您的位置:首页 > 其它

Calendar的add和set方法的运用和区别

2017-02-23 19:47 274 查看

终于下决心写博客

最近感觉有些堕落,想学点东西也学不进去,所以下定决心写点博客,希望能够进行一些技术积累!


今天项目里面写到一个日历小控件,要求按月进行变化显示。如下所示:



所以研究了一下Calendar,实现方法如下:

Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
/**重点是下面这句, “-1”表示时间减一个月 若想按年修改只需将第一个参数修改为Calendar.YEAR,确定好第一个参数后,只需按需修改第二个参数就可以实现日期的增减。
区别于set();
*/
calendar.add(Calendar.MONTH, -1);//在当前日期上 减一
Date newTime = calendar.getTime();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月");//将日期格式化xxxx年xx月的样式
tv_date.setText(sdf.format(newTime));


Caledar有的add()set()方法很有用处,如获取当月第一天的方法:

SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH,1);//第二个参数设置为1,当前设置日期为本月1号
String firstDay = sdf.format(calendar.getTime());
textview.setText(firstDay)


add()源码:

public abstract void add(int field, int value);
-第一个参数 field 表示日历字段 即:年 月 日
-第二个参数 value 表示该字段值的 变化的量
如:字段如果是月,value值为3 ,就表示设置月份为3月。


set()源码:

public void set(int field,int value)
-field 被改变的字段
-value 该值被直接赋值与上面的日历字段


set((int field, int value))方法区别于add(int field, int value),set()有好几个重载的方法,这里只说和add()同参的。

-set 表示直接设值 不考虑原来的时间值
-add 表示在原有的基础上进行加减value


calendar.add(Calendar.DAY_OF_MONTH, 2);//表示在默认的当前日期上加两天
calendar.set(Calendar.DAY_OF_MONTH,2);//表示直接将日期设置为本月2号


这就是我的第一篇博客了,写一下感觉还是有些用处的。第一次写,没有经验,水平也有限,希望各位博友多多指教。

b247
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: