Calendar.get()方法--- WEEK_OF_YEAR 、MONTH、
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、的更多相关文章
- Java Calendar.set 方法设置时间的问题
因项目需要,需要遍历一年中的其中几个月,获得每个月的用户数量. 变量有:开始时间--startDate,结束时间--endDate. 逻辑很简单:获取到开始时间的月份和结束时间的月份,然后得到月份差 ...
- Calendar使用方法
Calendar类的静态方法getInstance()可以初始化一个日历对象: Calendar now = Calendar.getInstance(); 可以使用下面三个方法把日历定到任何一个时间 ...
- Calendar add 方法 和set方法
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar c = Calendar. ...
- Calendar.set方法获取前一天的当前时刻
获取前几天的当前时刻的时间方法 Calendar cal = Calendar.getInstance(); Date date = new Date();// 获取当前时间 cal.setTime( ...
- Java基础知识强化95:Calendar类之Calendar类的add()和set()方法
1. Calendar的add()和set()方法: public void add(int field,int amount):根据给定的日历字段和对应的时间,来对当前的日历进行操作 public ...
- java Calendar类得到每个月的周末是几号的工具方法
public static List getWeekendInMonth(int year, int month) { List list = new ArrayList(); Calendar ca ...
- WPF中增加Month Calendar月历控件
XAML代码:(这里使用了codeproject.com网站上的一个Dll,你可以在这里下载它:http://www.codeproject.com/cs/miscctrl/MonthCalendar ...
- java日期类型转换总结date timestamp calendar string
用Timestamp来记录日期时间还是很方便的,但有时候显示的时候是不需要小数位后面的毫秒的,这样就需要在转换为String时重新定义格式. Timestamp转化为String: S ...
- 【转】Date类学习总结(Calendar Date 字符串 相互转换 格式化)
原文网址:http://www.blogjava.net/jerry-zhaoj/archive/2008/10/08/233228.html Date类学习总结 1.计算某一月份的最大天数 Cale ...
随机推荐
- C#Web异步操作封装
using System; using System.Collections.Generic; using System.Web; namespace HttpAsync { /// <summ ...
- Nest查询示例
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- C# 中的多线程(转载)
关于多线程的系列,翻译自国外大牛的文章,值得推荐 原文地址:https://blog.gkarch.com/topic/threading.html
- DuiLib学习笔记4——布局
有了前面三篇的基础,现在可以开始布局了. 首先任何布局都必须包含在<Window></Window>标签内,跟<html></html>很像. DuiL ...
- haproxy log config
Step 4: Configuring logging Edit /etc/sysconfig/syslog SYSLOGD_OPTIONS=”-m 0 -r” ————————————————— ...
- Java基础之扩展GUI——使用对话框创建文本元素(Sketcher 4 creating text elements)
控制台程序. 为了与Sketcher中的其他元素类型保持一致,需要为Elements菜单添加Text菜单项和工具栏按钮.还需要定义用来表示文本元素的类Element.Text. 1.修改Sketche ...
- 如何关闭windows电脑的开机自启程序
很多时候我们打开电脑会发现,莫名其妙的出现一些已经在运行的程序了,这都是一些开机自启的软件之类的.可能你的电脑配置本来就不怎么高,开机还这样,那估计会很卡顿,那有什么方法可以关闭这些开机自动启动的程序 ...
- Mac 使用笔记
说来惭愧,入手Mac已经快大半年了,但使用上一直是菜鸟. 下面是最近学习和用到的技巧,纪录如下,以后会不定期更新. 开启多个Terminal,这个简直是调程序必备. Command+N 打开新的Ter ...
- [Effective JavaScript 笔记]第64条:对异步循环使用递归
假设需要有这样一个函数,接收一个URL的数组并尝试依次下载每个文件直到有一个文件被成功下载.如果API是同步的,使用循环很简单实现. function downloadOneSync(urls){ f ...
- xib中的view对iPhone和iPad自适应
1 This worked for me: Make a copy of the .xib in the Finder. Open the copied file in a text edito ...