免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 9714 | 回复: 0
打印 上一主题 下一主题

Java获取一年有多少周、某周的第一天和最后一天 [复制链接]

论坛徽章:
2
操作系统版块每日发帖之星
日期:2015-06-26 22:20:00每日论坛发贴之星
日期:2015-06-26 22:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-07-08 10:41 |只看该作者 |倒序浏览
Java获取一年有多少周、某周的第一天和最后一天.

原文地址:http://blog.csdn.net/dragonvsdragon/article/details/7034007
  1. import java.text.SimpleDateFormat;
  2. import java.util.Calendar;
  3. import java.util.Date;
  4. import java.util.GregorianCalendar;


  5. public class Test {

  6.     // 获取当前时间所在年的周数
  7.     public static int getWeekOfYear(Date date) {
  8.         Calendar c = new GregorianCalendar();
  9.         c.setFirstDayOfWeek(Calendar.MONDAY);
  10.         c.setMinimalDaysInFirstWeek(7);
  11.         c.setTime(date);

  12.         return c.get(Calendar.WEEK_OF_YEAR);
  13.     }

  14.     // 获取当前时间所在年的最大周数
  15.     public static int getMaxWeekNumOfYear(int year) {
  16.         Calendar c = new GregorianCalendar();
  17.         c.set(year, Calendar.DECEMBER, 31, 23, 59, 59);

  18.         return getWeekOfYear(c.getTime());
  19.     }

  20.     // 获取某年的第几周的开始日期
  21.     public static Date getFirstDayOfWeek(int year, int week) {
  22.         Calendar c = new GregorianCalendar();
  23.         c.set(Calendar.YEAR, year);
  24.         c.set(Calendar.MONTH, Calendar.JANUARY);
  25.         c.set(Calendar.DATE, 1);

  26.         Calendar cal = (GregorianCalendar) c.clone();
  27.         cal.add(Calendar.DATE, week * 7);

  28.         return getFirstDayOfWeek(cal.getTime());
  29.     }

  30.     // 获取某年的第几周的结束日期
  31.     public static Date getLastDayOfWeek(int year, int week) {
  32.         Calendar c = new GregorianCalendar();
  33.         c.set(Calendar.YEAR, year);
  34.         c.set(Calendar.MONTH, Calendar.JANUARY);
  35.         c.set(Calendar.DATE, 1);

  36.         Calendar cal = (GregorianCalendar) c.clone();
  37.         cal.add(Calendar.DATE, week * 7);

  38.         return getLastDayOfWeek(cal.getTime());
  39.     }

  40.     // 获取当前时间所在周的开始日期
  41.     public static Date getFirstDayOfWeek(Date date) {
  42.         Calendar c = new GregorianCalendar();
  43.         c.setFirstDayOfWeek(Calendar.MONDAY);
  44.         c.setTime(date);
  45.         c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek()); // Monday
  46.         return c.getTime();
  47.     }

  48.     // 获取当前时间所在周的结束日期
  49.     public static Date getLastDayOfWeek(Date date) {
  50.         Calendar c = new GregorianCalendar();
  51.         c.setFirstDayOfWeek(Calendar.MONDAY);
  52.         c.setTime(date);
  53.         c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek() + 6); // Sunday
  54.         return c.getTime();
  55.     }

  56.     public static void main(String[] args) {
  57.         int year = 2015;
  58.         int week = 27;

  59.         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  60.         Date today = new Date();
  61.         Calendar c = new GregorianCalendar();
  62.         c.setTime(today);

  63.         System.out.println("当前时间:current date = " + sdf.format(today));
  64.         System.out.println("当前第几周:getWeekOfYear = " + getWeekOfYear(today));
  65.         System.out.println("年度总周数:getMaxWeekNumOfYear = " + getMaxWeekNumOfYear(year));
  66.         System.out.println("本周第一天:getFirstDayOfWeek = " + sdf.format(getFirstDayOfWeek(year, week)));
  67.         System.out.println("本周最后一天:getLastDayOfWeek = " + sdf.format(getLastDayOfWeek(year, week)));
  68.         System.out.println("本周第一天:getFirstDayOfWeek = " + sdf.format(getFirstDayOfWeek(today)));
  69.         System.out.println("本周最后一天:getLastDayOfWeek = " + sdf.format(getLastDayOfWeek(today)));
  70.     }
  71. }


  72.         
  73.         //输出结果:
  74. //        当前时间:current date = 2015-07-07 16:35:07
  75. //        当前第几周:getWeekOfYear = 27
  76. //        年度总周数:getMaxWeekNumOfYear = 52
  77. //        getFirstDayOfWeek = 2015-07-06 16:35:07
  78. //        getLastDayOfWeek = 2015-07-12 16:35:07
  79. //        getFirstDayOfWeek = 2015-07-06 16:35:07
  80. //        getLastDayOfWeek = 2015-07-12 16:35:07
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP