项目中涉及到的日期类的实用方法
2016-01-19 16:49
288 查看
// 判断开始时间在星期几的位置 public static int getStartTimeIndex(Date startTime) { SimpleDateFormat sdf = new SimpleDateFormat("EEE"); System.out.println("今天的日期: " + sdf.format(startTime)); String str = sdf.format(startTime); if ("星期日".equals(str)) { return 1; } else if ("星期一".equals(str)) { return 2; } else if ("星期二".equals(str)) { return 3; } else if ("星期三".equals(str)) { return 4; } else if ("星期四".equals(str)) { return 5; } else if ("星期五".equals(str)) { return 6; } else if ("星期六".equals(str)) { return 7; } return 0; } //获得两个日期的中间间隔天数 public static int getDateSpace(Date date1, Date date2) { int result = 0; Calendar calst = Calendar.getInstance(); ; Calendar caled = Calendar.getInstance(); calst.setTime(date1); caled.setTime(date2); // 设置时间为0时 calst.set(Calendar.HOUR_OF_DAY, 0); calst.set(Calendar.MINUTE, 0); calst.set(Calendar.SECOND, 0); caled.set(Calendar.HOUR_OF_DAY, 0); caled.set(Calendar.MINUTE, 0); caled.set(Calendar.SECOND, 0); // 得到两个日期相差的天数 int days = ((int) (caled.getTime().getTime() / 1000) - (int) (calst.getTime().getTime() / 1000)) / 3600 / 24; return days; } /** * 根据日期获得所在周的日期 * * @param mdate * @return */ @SuppressWarnings("deprecation") public static List<Date> dateToWeek(Date mdate) { int b = mdate.getDay(); Date fdate; List<Date> list = new ArrayList<Date>(); Long fTime = mdate.getTime() - (b + 1) * 24 * 3600000; for (int a = 1; a <= 7; a++) { fdate = new Date(); fdate.setTime(fTime + (a * 24 * 3600000)); list.add(a - 1, fdate); } return list; } //获取上一周所有的日期 @SuppressWarnings("deprecation") public static List<Date> dateToLastWeek(Date mdate) { int b = mdate.getDay(); Date fdate; List<Date> list = new ArrayList<Date>(); Long fTime = mdate.getTime() - (b + 8) * 24 * 3600000; for (int a = 1; a <= 7; a++) { fdate = new Date(); fdate.setTime(fTime + (a * 24 * 3600000)); list.add(a - 1, fdate); } return list; } // 日期向前向后推迟几天 public static Date delayDate(Date enddate, int num) { try { SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM-dd"); Calendar date = Calendar.getInstance(); date.setTime(enddate); date.set(Calendar.DATE, date.get(Calendar.DATE) + num); Date newDate = dft.parse(dft.format(date.getTime())); return newDate; } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } // 根据日期获取到那周的周一是哪天 public static Date getMonday(Date time) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar cal = Calendar.getInstance(); cal.setTime(time); //判断要计算的日期是否是周日,如果是则减一天计算周六的,否则会出问题,计算到下一周去了 int dayWeek = cal.get(Calendar.DAY_OF_WEEK);//获得当前日期是一个星期的第几天 if (1 == dayWeek) { cal.add(Calendar.DAY_OF_MONTH, -1); } // System.out.println("要计算日期为:"+sdf.format(cal.getTime())); cal.setFirstDayOfWeek(Calendar.MONDAY);//设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一 int day = cal.get(Calendar.DAY_OF_WEEK);//获得当前日期是一个星期的第几天 cal.add(Calendar.DATE, cal.getFirstDayOfWeek()-day);//根据日历的规则,给当前日期减去星期几与一个星期第一天的差值 String imptimeBegin = sdf.format(cal.getTime()); System.out.println("所在周星期一的日期:"+imptimeBegin); try { System.out.println(sdf.parse(imptimeBegin)); return sdf.parse(imptimeBegin); } catch (ParseException e) { e.printStackTrace(); } return null; }
相关文章推荐
- dos 日期时间格式设置使用小结(Date和Time)
- DOS批处理之DATE命令的使用方法详解
- 如何解决ORA-01843与NLS_DATE_FORMAT问题
- ExtJs的Date格式字符代码
- PHP中Date获取时间不正确怎么办
- Insert Date and Time into Access
- Shell脚本实现随机数多种方法介绍(date、random、uuid)
- javascript中日期函数new Date()的浏览器兼容性问题
- date.parse在IE和FF中的区别
- 使用 MySQL Date/Time 类型
- php将字符串转化成date存入数据库的两种方式
- JavaScript Date对象使用总结
- Java中Date,Calendar,Timestamp的区别以及相互转换与使用
- PHP中Date()时间日期函数的使用方法小结
- 简单谈谈javascript Date类型
- php date与gmdate的获取日期的区别
- JavaScript 笔记二 Array和Date对象方法
- Shell时间(date)相关命令
- oracle date 类型字段的处理方法
- PHP中date与gmdate的区别及默认时区设置