Java中用Calendar类计算周和周的起始日期
2009-10-29 09:59
381 查看
package com.itywweeksoft.ambow.common; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; /** * Title: 周计算类,星期日为一周的开始,星期六为一周的结束 * Description: 在两年的交接地带还有疑问。 * 比如2006-12-29到2009-01-04,属于2008年的最后一周, * 2009-01-04位2009年第一周的开始。 */ public class WeekUtil { /** * 取得当前日期是多少周 * * @param date * @return */ public static int getWeekOfYear(Date date) { Calendar c = new GregorianCalendar(); c.setFirstDayOfWeek(Calendar.SUNDAY); c.setMinimalDaysInFirstWeek(7); c.setTime(date); return c.get(Calendar.WEEK_OF_YEAR); } /** * 得到某一年周的总数 * * @param year * @return */ public static int getMaxWeekNumOfYear(int year) { Calendar c = new GregorianCalendar(); c.set(year, Calendar.DECEMBER, 31, 23, 59, 59); return getWeekOfYear(c.getTime()); } /** * 得到某年某周的第一天 * * @param year * @param week * @return */ public static Date getFirstDayOfWeek(int year, int week) { Calendar c = new GregorianCalendar(); c.set(Calendar.YEAR, year); c.set(Calendar.MONTH, Calendar.JANUARY); c.set(Calendar.DATE, 1); Calendar cal = (GregorianCalendar) c.clone(); cal.add(Calendar.DATE, week * 7); return getFirstDayOfWeek(cal.getTime()); } /** * 得到某年某周的最后一天 * * @param year * @param week * @return */ public static Date getLastDayOfWeek(int year, int week) { Calendar c = new GregorianCalendar(); c.set(Calendar.YEAR, year); c.set(Calendar.MONTH, Calendar.JANUARY); c.set(Calendar.DATE, 1); Calendar cal = (GregorianCalendar) c.clone(); cal.add(Calendar.DATE, week * 7); return getLastDayOfWeek(cal.getTime()); } /** * 取得当前日期所在周的第一天 * * @param date * @return */ public static Date getFirstDayOfWeek(Date date) { Calendar c = new GregorianCalendar(); c.setFirstDayOfWeek(Calendar.SUNDAY); c.setTime(date); c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek()); // Monday return c.getTime(); } /** * 取得当前日期所在周的最后一天 * * @param date * @return */ public static Date getLastDayOfWeek(Date date) { Calendar c = new GregorianCalendar(); c.setFirstDayOfWeek(Calendar.SUNDAY); c.setTime(date); c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek() + 6); // Sunday return c.getTime(); } /** * 日期转换成字符串 * @param date 日期 * @param pattern 格式 * @return 转换后的字符串 */ public static String defaultDateToStr(java.util.Date date, String pattern) { if( date == null ){ return ""; } SimpleDateFormat ft = new SimpleDateFormat(pattern); return ft.format(date); } public static void main(String[] args) { int year = 2006; int week = 1; // 以2006-01-02位例 Calendar c = new GregorianCalendar(); c.set(2006, Calendar.JANUARY, 2); Date d = c.getTime(); System.out.println("current date = " + d); System.out.println("getWeekOfYear = " + getWeekOfYear(d)); System.out .println("getMaxWeekNumOfYear = " + getMaxWeekNumOfYear(year)); System.out.println("getFirstDayOfWeek = " + getFirstDayOfWeek(year, week)); System.out .println("getLastDayOfWeek = " + getLastDayOfWeek(year, week)); System.out.println("getFirstDayOfWeek = " + getFirstDayOfWeek(d)); System.out.println("getLastDayOfWeek = " + getLastDayOfWeek(d)); } }
相关文章推荐
- Java中用Calendar类计算周和周的起始日期(转)
- Java中用Calendar类计算周和周的起始日期
- 【转载】Java中用Calendar类计算周和周的起始日期
- JAVA中用CALENDAR类计算周和周的起始日期(转)
- Java中用Calendar类计算周和周的起始日期
- Java中用Calendar类计算周和周的起始日期
- JAVA中用CALENDAR类计算周和周的起始日期
- JAVA中用CALENDAR类计算周和周的起始日期(转)
- Java中用Calendar类计算周和周的起始日期(转)
- Java常用类库——时间处理类Date、Calendar、GregorianCalendar以及日期格式化和计算
- java学习之旅67--常用类_Calendar和GregorianCalendar的使用_日期计算
- Java日期计算(Calendar类)
- java 使用Calendar类计算每月有多少自然周,并输出每周的开始和结束日期
- 利用Java中Calendar计算两个日期之间的天数和周数
- Java Calendar 计算日期
- java 使用Calendar类计算每月有多少自然周,并输出每周的开始和结束日期
- java日期计算(Calendar类)
- java 使用Calendar类计算每月有多少自然周,并输出每周的开始和结束日期
- Java -- 键盘输入 Scanner, BufferedReader。 系统相关System,Runtime。随机数 Randrom。日期操作Calendar
- java计算某个日期是什么节气(24节气)