黑马程序员技术交流社区

标题: 围观!关于Calendar获取本周第一天最后一天代码的困惑 [打印本页]

作者: 朱晓杰    时间: 2013-5-16 19:27
标题: 围观!关于Calendar获取本周第一天最后一天代码的困惑
本帖最后由 朱晓杰 于 2013-5-21 14:31 编辑

今天在整理java中处理日期的代码时,遇到了一个小困惑:如何获取本周的第一天和最后一天?现将代码贴上
  1. import static java.lang.System.*;
  2. import java.util.Calendar;
  3. import java.util.Date;
  4. import java.text.SimpleDateFormat;
  5. class CalendarDemo
  6. {
  7.         /**
  8.          * 功能:格式化日期,获取格式化之后的日期
  9.          * @param date:要进行格式化的Date类型的日期
  10.          * @param pattern:格式字符串
  11.          * 如果date为空,则返回当前时间格式化后的日期字符串
  12.          * 示例 :yyyy-MM-dd HH:mm:ss
  13.          *              yyyy-MM-dd hh:mm:ss  两者大小写的区别
  14.          *       yyyy/MM/dd
  15.          *       yyyy年MM月dd日
  16.          */      
  17.         public static String getFormatDate(Date date,String pattern){
  18.                 if(date == null || date.equals(""))
  19.                         date = new Date();//当前时间
  20.                 if(pattern == null || pattern.equals(""))
  21.                         pattern = "yyyy-MM-dd HH:mm:ss";
  22.                 SimpleDateFormat format = new SimpleDateFormat(pattern);
  23.                 return format.format(date);
  24.         }

  25.         /**
  26.          * 功能:获取本周的开始时间
  27.          * 示例:2013-05-13 00:00:00
  28.          */   
  29.         private static Date getWeekStart() {// 当周开始时间
  30.                 Calendar currentDate = Calendar.getInstance();
  31.                 currentDate.setFirstDayOfWeek(Calendar.MONDAY);
  32.                 currentDate.set(Calendar.HOUR_OF_DAY, 0);
  33.                 currentDate.set(Calendar.MINUTE, 0);
  34.                 currentDate.set(Calendar.SECOND, 0);
  35.                 currentDate.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
  36.                 return (Date) currentDate.getTime();
  37.         }
  38.         
  39.         /**
  40.          * 功能:获取本周的结束时间
  41.          * 示例:2013-05-19 23:59:59
  42.          */   
  43.         private static Date getWeekEnd() {// 当周结束时间
  44.                 Calendar currentDate = Calendar.getInstance();
  45.                 currentDate.setFirstDayOfWeek(Calendar.MONDAY);
  46.                 currentDate.set(Calendar.HOUR_OF_DAY, 23);
  47.                 currentDate.set(Calendar.MINUTE, 59);
  48.                 currentDate.set(Calendar.SECOND, 59);
  49.                 currentDate.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
  50.                 return (Date) currentDate.getTime();
  51.         }
  52.         
  53.         public static void main(String[] args) {
  54.                
  55.                 out.println("本周第一天:" + getFormatDate(getWeekStart(),""));
  56.                
  57.                 out.println("本周最后一天:" + getFormatDate(getWeekEnd(),""));
  58.         }
  59. }
复制代码
虽然自己知道了Calandar中方法,但是对getWeekStart()和getWeekEnd()方法中的代码思路不是很懂,
我的看法是:获取到当前的时间,然后设置当前时间所在周的第一天和最后一天,还有就是设置第一天和最后一天的时间格式,第一天和最后一天的示例见代码注释
请各位黑马帮忙解释一下我这样理解对么?

作者: 朱晓杰    时间: 2013-5-16 19:35
尹桥印 发表于 2013-5-16 19:33
这个不明白。等大神来回答。

我也是有点儿困惑呢
作者: Jacky_Chen1990    时间: 2013-5-16 19:41
墨镜哥,来帮顶了!
作者: 朱晓杰    时间: 2013-5-16 20:31
Jacky_Chen1990 发表于 2013-5-16 19:41
墨镜哥,来帮顶了!

:lol   谢啦!
作者: To    时间: 2013-5-17 17:42
嘿嘿。不会呀。



                                            
                                                                     黑马云青年
作者: 神之梦    时间: 2013-5-18 01:20
这就是说帮顶也可以加金币啦{:soso_e113:}我也不知道
作者: 朱晓杰    时间: 2013-5-18 17:33
神之梦 发表于 2013-5-18 01:20
这就是说帮顶也可以加金币啦我也不知道

金币花完了,还没有一个满意的答案?:dizzy:
作者: 曹睿翔    时间: 2013-5-19 07:41
如果问题已解决请再次编辑,改为以解决,方便大家看帖




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2