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

[java] view plain copy
  1. importjava.text.SimpleDateFormat;
  2. importjava.util.Calendar;
  3. importjava.util.Date;
  4. importjava.util.GregorianCalendar;
  5. publicclassWeekUtils{
  6. //获取当前时间所在年的周数
  7. publicstaticintgetWeekOfYear(Datedate){
  8. Calendarc=newGregorianCalendar();
  9. c.setFirstDayOfWeek(Calendar.MONDAY);
  10. c.setMinimalDaysInFirstWeek(7);
  11. c.setTime(date);
  12. returnc.get(Calendar.WEEK_OF_YEAR);
  13. }
  14. //获取当前时间所在年的最大周数
  15. publicstaticintgetMaxWeekNumOfYear(intyear){
  16. Calendarc=newGregorianCalendar();
  17. c.set(year,Calendar.DECEMBER,31,23,59,59);
  18. returngetWeekOfYear(c.getTime());
  19. }
  20. //获取某年的第几周的开始日期
  21. publicstaticDategetFirstDayOfWeek(intyear,intweek){
  22. Calendarc=newGregorianCalendar();
  23. c.set(Calendar.YEAR,year);
  24. c.set(Calendar.MONTH,Calendar.JANUARY);
  25. c.set(Calendar.DATE,1);
  26. Calendarcal=(GregorianCalendar)c.clone();
  27. cal.add(Calendar.DATE,week*7);
  28. returngetFirstDayOfWeek(cal.getTime());
  29. }
  30. //获取某年的第几周的结束日期
  31. publicstaticDategetLastDayOfWeek(intyear,intweek){
  32. Calendarc=newGregorianCalendar();
  33. c.set(Calendar.YEAR,year);
  34. c.set(Calendar.MONTH,Calendar.JANUARY);
  35. c.set(Calendar.DATE,1);
  36. Calendarcal=(GregorianCalendar)c.clone();
  37. cal.add(Calendar.DATE,week*7);
  38. returngetLastDayOfWeek(cal.getTime());
  39. }
  40. //获取当前时间所在周的开始日期
  41. publicstaticDategetFirstDayOfWeek(Datedate){
  42. Calendarc=newGregorianCalendar();
  43. c.setFirstDayOfWeek(Calendar.MONDAY);
  44. c.setTime(date);
  45. c.set(Calendar.DAY_OF_WEEK,c.getFirstDayOfWeek());//Monday
  46. returnc.getTime();
  47. }
  48. //获取当前时间所在周的结束日期
  49. publicstaticDategetLastDayOfWeek(Datedate){
  50. Calendarc=newGregorianCalendar();
  51. c.setFirstDayOfWeek(Calendar.MONDAY);
  52. c.setTime(date);
  53. c.set(Calendar.DAY_OF_WEEK,c.getFirstDayOfWeek()+6);//Sunday
  54. returnc.getTime();
  55. }
  56. publicstaticvoidmain(String[]args){
  57. intyear=2011;
  58. intweek=1;
  59. SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");
  60. Datetoday=newDate();
  61. Calendarc=newGregorianCalendar();
  62. c.setTime(today);
  63. System.out.println("currentdate="+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. 转自:http://blog.csdn.net/dragon1984456/article/details/7094473
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值