1. WEEK_OF_YEAR   一年中的第几周

由于西方的一周指的是:星期日-星期六,星期日是一周的第一天,星期六是一周的最后一天,

所以,使用 calendar.get(Calendar.WEEK_OF_YEAR) 时应该注意一周的开始应该是哪一天

如果一周的开始是星期一,那么可以进行如下操作:

        Calendar calendar=Calendar.getInstance();
calendar.set(2016,9,9); //2016-10-09 这一天是星期日
long week1=calendar.get(Calendar.WEEK_OF_YEAR);
calendar.setFirstDayOfWeek(Calendar.MONDAY); //设置一周的第一天是星期几
calendar.set(2016,9,9); / / 一定要在calendar.setFirstDayOfWeek();方法后重新设置一遍日期,否则无效
long week2=calendar.get(Calendar.WEEK_OF_YEAR);

注意:一年有52个周,calendar.get(Calendar.WEEK_OF_YEAR);的取值范围是:“1-52”,所以当一年中最后的几天超过52周,进入第53周时,将以下一年的第一周来计算

(跨年问题:跨年的那个星期获取 “WEEK_OF_YEAR” 得到的结果总是“1”,)

        calendar.setFirstDayOfWeek(Calendar.MONDAY);
calendar.set(2016,11,31); //2016-12-31
long week=calendar.get(Calendar.WEEK_OF_YEAR); //week= 1

2016-12-31 通过计算得到:1

 2. MONTH  月份

也是因为西方文化的原因,一年的第一个月是从“0”开始算起的,一年中12个月份分别是:“0-11”,12指的是下一年的一月份

        calendar.set(2016,12,9);
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
String date=format.format(calendar.getTime());
获得的结果是:2017-01-09

所以    为 calendar 设置“月份(MONTH)”时需要 “-1”

通过 calendar 获取“月份(month)”时需要 “+1”

3.DAY_OF_WEEK  星期几

         String[] weeks = new String[]{"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};           
int index=calendar.get(Calendar.DAY_OF_WEEK);
String weekDay=weeks[index-1];

返回的是周几,取值为“1-7”  指的是  “星期日-星期六”,所以获取星期几时需要 “-1”

(这个值跟一周的第一天是星期几无关)

 4. SET() 方法

set(Calendar.DAY_OF_WEEK,Calendar.MONDAY):设置日期(calendar)为日期所在周的周一的日期(可以获取日期所在周的周一的日期)

        calendar.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);
String date=format.format(cal.getTime());

Calendar.get()方法--- WEEK_OF_YEAR 、MONTH、的更多相关文章

  1. Java Calendar.set 方法设置时间的问题

    因项目需要,需要遍历一年中的其中几个月,获得每个月的用户数量.  变量有:开始时间--startDate,结束时间--endDate. 逻辑很简单:获取到开始时间的月份和结束时间的月份,然后得到月份差 ...

  2. Calendar使用方法

    Calendar类的静态方法getInstance()可以初始化一个日历对象: Calendar now = Calendar.getInstance(); 可以使用下面三个方法把日历定到任何一个时间 ...

  3. Calendar add 方法 和set方法

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar c = Calendar. ...

  4. Calendar.set方法获取前一天的当前时刻

    获取前几天的当前时刻的时间方法 Calendar cal = Calendar.getInstance(); Date date = new Date();// 获取当前时间 cal.setTime( ...

  5. Java基础知识强化95:Calendar类之Calendar类的add()和set()方法

    1. Calendar的add()和set()方法: public void add(int field,int amount):根据给定的日历字段和对应的时间,来对当前的日历进行操作 public ...

  6. java Calendar类得到每个月的周末是几号的工具方法

    public static List getWeekendInMonth(int year, int month) { List list = new ArrayList(); Calendar ca ...

  7. WPF中增加Month Calendar月历控件

    XAML代码:(这里使用了codeproject.com网站上的一个Dll,你可以在这里下载它:http://www.codeproject.com/cs/miscctrl/MonthCalendar ...

  8. java日期类型转换总结date timestamp calendar string

    用Timestamp来记录日期时间还是很方便的,但有时候显示的时候是不需要小数位后面的毫秒的,这样就需要在转换为String时重新定义格式.         Timestamp转化为String: S ...

  9. 【转】Date类学习总结(Calendar Date 字符串 相互转换 格式化)

    原文网址:http://www.blogjava.net/jerry-zhaoj/archive/2008/10/08/233228.html Date类学习总结 1.计算某一月份的最大天数 Cale ...

随机推荐

  1. css样式管理

    css命名 传统网站页面(企业级),大概就是about,product,register等,他们的名字较好区分,他们的样式整体也不会很大,用简单的驼峰法就够了,或者简单的模块. 非传统企业页面,命名驼 ...

  2. MyBatis操作指南-搭建项目基础环境(基于Java API)含log4j2配置

  3. HTML两张图片叠加问题的进一步修改

    要想两张图片叠加,只需在circle添加一个Position:absolute就OK了 以上几步,很多大侠前辈都已经说过,相信不用再啰嗦,我想说的是一种扩展,将示例放到右边,可能因为我悟性低,研究了一 ...

  4. WCF服务接口多,客户端在引用时出错!报WCF The maximum nametable character count quota (16384) has been exceeded while reading XML data错误

    WCF服务接口多,客户端在引用时出错!报WCF The maximum nametable character count quota (16384) has been exceeded while ...

  5. jsp中用EL读取了数据库里面的时间,怎么设置格式显示的格式

    首先导入标签 <%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> < ...

  6. MySql5.7.12设置log-bin

    什么是binlog日志 binlog日志记录了MySql数据库的增加.删除.修改操作.用来实现MySql主从复制. 设置binlog日志 在my.cnf中配置binlog日志 [mysqld] log ...

  7. [转]网络诊断工具:MTR

    MTR是Linux平台上一款非常好用的网络诊断工具,集成了traceroute.ping.nslookup的功能,用于诊断网络状态非常有用.能按要求对路由中所有节点进行批量测试 第一列(Host):I ...

  8. HTML5——语音输入

    一.使用方式: <input type="text" x-webkit-speech /> 二.属性 1.lang属性:语言种类 <input type=&quo ...

  9. Java堆栈的应用1----------堆栈的自定义实现以及括号匹配算法的Java实现

    接下篇:http://www.cnblogs.com/fuck1/p/5995857.html 堆栈的应用1:括号匹配算法 括号匹配问题 假设算术表达式中包含圆括号,方括号,和花括号三种类型.使用栈数 ...

  10. fgets函数

    打开文件 fopen("需要打开的路径") 然后使用fgets函数读取行 #include <stdio.h> #include <stdlib.h> #i ...