首页 > 学院 > 开发设计 > 正文

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

2019-11-08 00:37:04
字体:
来源:转载
供稿:网友

终于下决心写博客

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

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

这里写图片描述

所以研究了一下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号

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


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表