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());

calender get方法_Calendar.get()方法--- WEEK_OF_YEAR 、MONTH、相关推荐

  1. idea生成类注释和方法注释的方法

    目录标题 生成类注释 生成类注解模板 生成方法注释 生成方法注解模板 生成类注释 生成类注解模板 /** * @program: ${PROJECT_NAME} * @description: thi ...

  2. JS-9 JS常见内置类;包装类型;Number类方法与实例方法;Math方法;String类常见方法;数组方法(增删改查+遍历+排序);时间Date 构造函数+获取信息+设置信息+获取Unix时间戳

    目录 1_包装类型 2_Number类补充 3_Math对象 4_String类的补充 4.1_基本使用 4.2_修改字符串 4.3_查找.替换字符串 开头与结尾 4.4_获取子字符串 4.5_其他方 ...

  3. 【java基础18:方法覆盖与多态】什么时候使用方法覆盖 toString方法的覆盖 多态的基础语法与作用 向上/向下转型

    目录 方法覆盖Override 多态 方法覆盖Override 方法覆盖初体验,什么样的程序要方法覆盖 /*当前程序存在的问题(设计上的问题)??鸟儿在执行move()方法的时候,最好输出的结果是:& ...

  4. Go 学习笔记(34)— Go 方法声明、方法调用、方法值、方法表达式、切片对象方法、指针对象方法

    1. 方法声明 Go 语言的方法非常纯粹, 可以看作特殊类型的函数, 其显式地将对象实例或指针作为函数的第一个参数, 并且参数名可以自己指定, 而不强制要求一定是 this 或 self .这个对象实 ...

  5. ajax post的回调函数另一个方法,jQueryajax–post()方法 - 米扑博客

    jQuery ajax - post() 实例 请求 test.php 网页,忽略返回值: $.post("test.php"); 通过 AJAX POST 请求改变 div 元素 ...

  6. C++学习笔记24,方法重写与方法隐藏

    该博文仅用于交流学习.请慎用于不论什么商业用途.本博主保留对该博文的一切权利. 博主博客:http://blog.csdn.net/qq844352155 转载请注明出处: 方法重写.是指在子类中又一 ...

  7. Java 8新特性——default方法(defenece方法)介绍

    为什么80%的码农都做不了架构师?>>>    本文由 ImportNew - 黄小非 翻译自 blog.sanaulla.info.如需转载本文,请先参见文章末尾处的转载要求. 我 ...

  8. 【hibernate框架】核心开发接口-saveOrUpdate方法与delete方法

    1.saveOrUpdate方法剖析 saveOrUpdate方法:分情况看是save还是update. 示例: public void testSaveOrUpdate(){Teacher t=ne ...

  9. python 类 公有属性、私有属性、公有方法、私有方法

    python 类 公有属性.私有属性.公有方法.私有方法 #!/usr/bin/env python # -*- encoding: utf-8 -*- """ @Int ...

最新文章

  1. LeetCode N-ary Tree Level Order Traversal(bfs)
  2. 补充部分官方文档里没有的Client Library以及代码提示Schema更新(三)
  3. hamcrest详细介绍
  4. 终端mysql Operation not permitted错误解决方案
  5. linux g++ 链接,Linux G++将64位共享库代码链接到静态库
  6. 移动端真机调试的两种方法
  7. MySQL show processlist
  8. 【直接下载】x86_64-6.3.0-release-win32-seh-rt_v5-rev2
  9. Java IO流笔记4 --- File类
  10. HBase简介、搭建环境及安装部署
  11. shell清空数据库表
  12. 论嵌入式单片机软件架构
  13. 【高数复盘】2.1导数概念
  14. Linux-磁盘分区,挂载
  15. 关于google浏览器打不开网页问题之容易被忽略的点
  16. Qt编写自定义控件:唱片播放控件
  17. 响应式卡片悬停效果 html+css
  18. 一张图搞懂微服务架构设计
  19. 输入法没有了 输入法不见了
  20. Unity 自动制作LowPoly随机形态的树预制体工具

热门文章

  1. Servlet的单例模式
  2. Linux查看服务器总内存和总硬盘大小
  3. 数据库的范式总结(待续)
  4. 在 ubuntu 下优雅的使用 Sublime Text 3 写 Python
  5. Oracle 存储过程的创建,及触发器调用存储过程
  6. vrpie在Visio Studio 中无法调试的问题
  7. 重做《机房收费系统》——概要设计(UI)
  8. 西安计算机二级12月,2017年12月计算机二级MS Office习题答案(一)
  9. 游戏测试与一般的软件测试的区别在哪里?
  10. php 合计,表格怎么合计总数