java根据日期获得周月

来源:互联网 发布:淘宝网购物蜜腊 编辑:程序博客网 时间:2024/04/30 13:24

时间的工具是开发的时候用的比较多的,几乎每个项目都要特定的写一个DateHelper类来处理一些时间转换的问题

1.根据日期获得周

/** * 根据日期获得星期 * @param date */public static String getWeekOfDate(Date date) {if (date == null) {return null;}String[] weekDaysCode = { "0", "1", "2", "3", "4", "5", "6" };Calendar calendar = Calendar.getInstance();calendar.setTime(date);int intWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1;return weekDaysCode[intWeek];}
2.获得当前周的所有日期

/**  * 根据日期获得所在周的日期   * @param mdate  * @return  */public static List<Date> dateGetWeek(Date date) {if (date == null) {return null;}int weekday = Integer.parseInt(getWeekOfDate(date));if (weekday == 0) {weekday = 7;}Date fdate;List<Date> list = new ArrayList<Date>();Long fTime = date.getTime() - weekday * 24 * 3600000;for (int i = 1; i <= 7; i++) {fdate = new Date();fdate.setTime(fTime + (i * 24 * 3600000));list.add(i - 1, fdate);}return list;}

3.判断两天是否在一天

/**  * 判断两个日期是否在同一周(比较所在周的第一天是否相同) * @param mdate  * @return  */public static boolean compare2dateIn1week(Date d1, Date d2) {if (d1 == null || d2 == null) {return false;}d1 = getFistWeekDay(d1) == null ? null : getFistWeekDay(d1);d2 = getFistWeekDay(d2) == null ? null : getFistWeekDay(d2);if (d1 != null && d2 != null) {if (DateUtil.Date2String(d1, "yyyy-MM-dd").equals(DateUtil.Date2String(d2, "yyyy-MM-dd"))) {return true;} else {return false;}} else {return false;}}

4.根据日期获得下一天  

/**  * 根据日期获得下一天   * @param mdate  * @return  */public static Timestamp getNextDay(Date date) {if (date == null) {return null;}Long fTime = date.getTime() + 1 * 24 * 3600000;return new Timestamp(fTime);}


5.根据日期获得一个月的第一天

/**  * 根据日期获得一个月的第一天 * @param mdate  * @return  */public static Timestamp getMonthFirstDay(Timestamp now) {if (now == null) {return null;}Calendar monthCalendar = Calendar.getInstance();monthCalendar.setTime(now);int year = monthCalendar.get(Calendar.YEAR);int month = monthCalendar.get(Calendar.MONTH) + 1;String monthFirstDay = year +"-" + month +"-1";return string2TimeStamp(monthFirstDay,"yyyy-M-d");}

6.获得一周的第一天

/**  * 根据日期获得所在周的第一天比如2013-4-10 周三  得到2013-4-8(周一) * @param mdate  * @return  */public static Timestamp getFistWeekDay(Date date) {if (date == null) {return null;}int weekday = Integer.parseInt(getWeekOfDate(date));if (weekday == 0) {weekday = 7;}Long fTime = date.getTime() - (weekday - 1) * 24 * 3600000;return new Timestamp(fTime);}

7.间隔日期

/** * 间隔日期 */public static int internal(Timestamp a, Timestamp b) {if (a == null || b == null) {return -1;}return Long.valueOf((a.getTime() - b.getTime()) / (24 * 3600000)).intValue();}

8.timestamp 转换为date

 public static Date timestampToDate(Timestamp tt) {        return new Date(tt.getTime());    }