A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 朱晓杰 于 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()方法中的代码思路不是很懂,
我的看法是:获取到当前的时间,然后设置当前时间所在周的第一天和最后一天,还有就是设置第一天和最后一天的时间格式,第一天和最后一天的示例见代码注释
请各位黑马帮忙解释一下我这样理解对么?

8 个回复

倒序浏览
尹桥印 发表于 2013-5-16 19:33
这个不明白。等大神来回答。

我也是有点儿困惑呢
回复 使用道具 举报

回帖奖励 +8

墨镜哥,来帮顶了!
回复 使用道具 举报
Jacky_Chen1990 发表于 2013-5-16 19:41
墨镜哥,来帮顶了!

:lol   谢啦!
回复 使用道具 举报
To 金牌黑马 2013-5-17 17:42:12
报纸

回帖奖励 +8

嘿嘿。不会呀。



                                            
                                                                     黑马云青年
回复 使用道具 举报

回帖奖励 +8

这就是说帮顶也可以加金币啦{:soso_e113:}我也不知道
回复 使用道具 举报
神之梦 发表于 2013-5-18 01:20
这就是说帮顶也可以加金币啦我也不知道

金币花完了,还没有一个满意的答案?:dizzy:

点评

继续追问吧,担心再次回复又会赚你金币,所以换点评了  发表于 2013-5-18 17:50
回复 使用道具 举报
如果问题已解决请再次编辑,改为以解决,方便大家看帖
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马