Java取一年有多少周、某周的第一天和最后一天

来源:互联网 发布:hdmi数字矩阵切换器 编辑:程序博客网 时间:2024/04/30 19:51
[java] view plaincopy
  1. import java.text.SimpleDateFormat;  
  2. import java.util.Calendar;  
  3. import java.util.Date;  
  4. import java.util.GregorianCalendar;  
  5. public class WeekUtils {  
  6.   
  7.  // 获取当前时间所在年的周数  
  8.  public static int getWeekOfYear(Date date) {  
  9.   Calendar c = new GregorianCalendar();  
  10.   c.setFirstDayOfWeek(Calendar.MONDAY);  
  11.   c.setMinimalDaysInFirstWeek(7);  
  12.   c.setTime(date);  
  13.   
  14.   return c.get(Calendar.WEEK_OF_YEAR);  
  15.  }  
  16.   
  17.  // 获取当前时间所在年的最大周数  
  18.  public static int getMaxWeekNumOfYear(int year) {  
  19.   Calendar c = new GregorianCalendar();  
  20.   c.set(year, Calendar.DECEMBER, 31235959);  
  21.   
  22.   return getWeekOfYear(c.getTime());  
  23.  }  
  24.   
  25.  // 获取某年的第几周的开始日期  
  26.  public static Date getFirstDayOfWeek(int year, int week) {  
  27.   Calendar c = new GregorianCalendar();  
  28.   c.set(Calendar.YEAR, year);  
  29.   c.set(Calendar.MONTH, Calendar.JANUARY);  
  30.   c.set(Calendar.DATE, 1);  
  31.   
  32.   Calendar cal = (GregorianCalendar) c.clone();  
  33.   cal.add(Calendar.DATE, week * 7);  
  34.   
  35.   return getFirstDayOfWeek(cal.getTime());  
  36.  }  
  37.   
  38.  // 获取某年的第几周的结束日期  
  39.  public static Date getLastDayOfWeek(int year, int week) {  
  40.   Calendar c = new GregorianCalendar();  
  41.   c.set(Calendar.YEAR, year);  
  42.   c.set(Calendar.MONTH, Calendar.JANUARY);  
  43.   c.set(Calendar.DATE, 1);  
  44.   
  45.   Calendar cal = (GregorianCalendar) c.clone();  
  46.   cal.add(Calendar.DATE, week * 7);  
  47.   
  48.   return getLastDayOfWeek(cal.getTime());  
  49.  }  
  50.   
  51.  // 获取当前时间所在周的开始日期  
  52.  public static Date getFirstDayOfWeek(Date date) {  
  53.   Calendar c = new GregorianCalendar();  
  54.   c.setFirstDayOfWeek(Calendar.MONDAY);  
  55.   c.setTime(date);  
  56.   c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek()); // Monday  
  57.   return c.getTime();  
  58.  }  
  59.   
  60.  // 获取当前时间所在周的结束日期  
  61.  public static Date getLastDayOfWeek(Date date) {  
  62.   Calendar c = new GregorianCalendar();  
  63.   c.setFirstDayOfWeek(Calendar.MONDAY);  
  64.   c.setTime(date);  
  65.   c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek() + 6); // Sunday  
  66.   return c.getTime();  
  67.  }  
  68.   
  69.  public static void main(String[] args) {  
  70.   int year = 2011;  
  71.   int week = 1;  
  72.   
  73.   SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
  74.   Date today = new Date();  
  75.   Calendar c = new GregorianCalendar();  
  76.   c.setTime(today);  
  77.   
  78.   System.out.println("current date = " + sdf.format(today));  
  79.   System.out.println("getWeekOfYear = " + getWeekOfYear(today));  
  80.   System.out.println("getMaxWeekNumOfYear = " + getMaxWeekNumOfYear(year));  
  81.   System.out.println("getFirstDayOfWeek = " + sdf.format(getFirstDayOfWeek(year, week)));  
  82.   System.out.println("getLastDayOfWeek = " + sdf.format(getLastDayOfWeek(year, week)));  
  83.   System.out.println("getFirstDayOfWeek = " + sdf.format(getFirstDayOfWeek(today)));  
  84.   System.out.println("getLastDayOfWeek = " + sdf.format(getLastDayOfWeek(today)));  
  85.  }  
  86. }  
  87. 转自:http://blog.csdn.net/dragon1984456/article/details/7094473
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 宝宝不愿意开口说话怎么办 自闭症孩子不爱学习怎么办 宝宝不独立走路怎么办 六个月宝宝不认人怎么办 小孩隔奶奶涨怎么办 小孩段奶奶涨怎么办 1岁半还不会说话怎么办 孩子嗓子哑了怎么办 小朋友嗓子哑了怎么办 4周岁宝宝拉肚子怎么办 小孩不肯拉小便怎么办 做销售不爱说话怎么办 我伤害了朋友怎么办 三岁发音不准怎么办 心里憋不住话怎么办 自己不长记性怎么办 孩子不愿意开口说话怎么办 孩子不爱开口说话怎么办 宝宝犟脾气不好怎么办 小孩说话不算话怎么办 孩子说话不算话怎么办 孩子故意不好好说话怎么办 小孩说话吐字不清楚怎么办 腿老是抽筋是怎么办 半夜睡觉脚抽筋怎么办 我不爱说话内向怎么办 小孩子吐字不清怎么办 宝宝前边头发少怎么办 宝宝咬嘴唇龅牙怎么办 小孩老是咬下唇怎么办 五月小孩掉下床怎么办 小孩说话夹舌头怎么办 小孩自闭不说话怎么办 孩子突然不说话怎么办 孩子说话语速慢怎么办 做磁共振不睡觉怎么办 宝宝吃饭不多怎么办 孩子吃饭爱说话怎么办 孩子吃饭喜欢说话怎么办 小孩子讲话嘴巴歪怎么办 小孩有自闭倾向怎么办