java 日期工具类

xiaoxiao2021-02-28  44

java日期工具类,包含季度,月份等操作

public class DateUtils { /** * 得到某年某周的第一天 * * @param year * @param week * @return */ public static Date getFirstDayOfWeek(int year, int week) { week = week - 1; Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.YEAR, year); calendar.set(Calendar.MONTH, Calendar.JANUARY); calendar.set(Calendar.DATE, 1); Calendar cal = (Calendar) calendar.clone(); cal.add(Calendar.DATE, week * 7); return getFirstDayOfWeek(cal.getTime()); } /** * 得到某年某周的最后一天 * * @param year * @param week * @return */ public static Date getLastDayOfWeek(int year, int week) { week = week - 1; Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.YEAR, year); calendar.set(Calendar.MONTH, Calendar.JANUARY); calendar.set(Calendar.DATE, 1); Calendar cal = (Calendar) calendar.clone(); cal.add(Calendar.DATE, week * 7); return getLastDayOfWeek(cal.getTime()); } /** * 取得当前日期所在周的第一天 * * @param date * @return */ public static Date getFirstDayOfWeek(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setFirstDayOfWeek(Calendar.SUNDAY); calendar.setTime(date); calendar.set(Calendar.DAY_OF_WEEK, calendar.getFirstDayOfWeek()); // Sunday return calendar.getTime(); } /** * 取得当前日期所在周的最后一天 * * @param date * @return */ public static Date getLastDayOfWeek(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setFirstDayOfWeek(Calendar.SUNDAY); calendar.setTime(date); calendar.set(Calendar.DAY_OF_WEEK, calendar.getFirstDayOfWeek() + 6); // Saturday return calendar.getTime(); } /** * 取得当前日期所在周的前一周最后一天 * * @param date * @return */ public static Date getLastDayOfLastWeek(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return getLastDayOfWeek(calendar.get(Calendar.YEAR), calendar.get(Calendar.WEEK_OF_YEAR) - 1); } /** * 返回指定日期的月的第一天 * * @param date * @return */ public static Date getFirstDayOfMonth(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), 1); return calendar.getTime(); } /** * 返回指定年月的月的第一天 * * @param year * @param month * @return */ public static Date getFirstDayOfMonth(Integer year, Integer month) { Calendar calendar = Calendar.getInstance(); if (year == null) { year = calendar.get(Calendar.YEAR); } if (month == null) { month = calendar.get(Calendar.MONTH); } calendar.set(year, month, 1,0,0,0); calendar.set(Calendar.MILLISECOND,0); return calendar.getTime(); } /** * 返回指定日期的月的最后一天 * * @param date * @return */ public static Date getLastDayOfMonth(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), 1); calendar.roll(Calendar.DATE, -1); return calendar.getTime(); } /** * 返回指定年月的月的最后一天 * * @param year * @param month * @return */ public static Date getLastDayOfMonth(Integer year, Integer month) { Calendar calendar = Calendar.getInstance(); if (year == null) { year = calendar.get(Calendar.YEAR); } if (month == null) { month = calendar.get(Calendar.MONTH); } calendar.set(year, month, 1,0,0,0); calendar.set(Calendar.MILLISECOND,0); calendar.roll(Calendar.DATE, -1); return calendar.getTime(); } /** * 返回指定日期的上个月的最后一天 * * @param date * @return */ public static Date getLastDayOfLastMonth(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH) - 1, 1); calendar.roll(Calendar.DATE, -1); return calendar.getTime(); } /** * 返回指定日期的季的第一天 * * @param date * @return */ public static Date getFirstDayOfQuarter(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return getFirstDayOfQuarter(calendar.get(Calendar.YEAR), getQuarterOfYear(date)); } /** * 返回指定年季的季的第一天 * * @param year * @param quarter * @return */ public static Date getFirstDayOfQuarter(Integer year, Integer quarter) { Calendar calendar = Calendar.getInstance(); Integer month = new Integer(0); if (quarter == 1) { month = 1 - 1; } else if (quarter == 2) { month = 4 - 1; } else if (quarter == 3) { month = 7 - 1; } else if (quarter == 4) { month = 10 - 1; } else { month = calendar.get(Calendar.MONTH); } return getFirstDayOfMonth(year, month); } /** * 返回指定日期的季的最后一天 * * @param date * @return */ public static Date getLastDayOfQuarter(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return getLastDayOfQuarter(calendar.get(Calendar.YEAR), getQuarterOfYear(date)); } /** * 返回指定年季的季的最后一天 * * @param year * @param quarter * @return */ public static Date getLastDayOfQuarter(Integer year, Integer quarter) { Calendar calendar = Calendar.getInstance(); Integer month = new Integer(0); if (quarter == 1) { month = 3 - 1; } else if (quarter == 2) { month = 6 - 1; } else if (quarter == 3) { month = 9 - 1; } else if (quarter == 4) { month = 12 - 1; } else { month = calendar.get(Calendar.MONTH); } return getLastDayOfMonth(year, month); } /** * 返回指定日期的上一季的最后一天 * * @param date * @return */ public static Date getLastDayOfLastQuarter(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return getLastDayOfLastQuarter(calendar.get(Calendar.YEAR), getQuarterOfYear(date)); } /** * 返回指定年季的上一季的最后一天 * * @param year * @param quarter * @return */ public static Date getLastDayOfLastQuarter(Integer year, Integer quarter) { Calendar calendar = Calendar.getInstance(); Integer month = new Integer(0); if (quarter == 1) { month = 12 - 1; } else if (quarter == 2) { month = 3 - 1; } else if (quarter == 3) { month = 6 - 1; } else if (quarter == 4) { month = 9 - 1; } else { month = calendar.get(Calendar.MONTH); } return getLastDayOfMonth(year, month); } /** * 返回指定日期的季度 * * @param date * @return */ public static int getQuarterOfYear(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(Calendar.MONTH) / 3 + 1; } /** * @param year 年份 * @param month 月份 * @param weekOfMonth 这个月的第几周 * @param dayOfWeek 星期几 * @return */ public static Date weekdatetodata(int year, int month, int weekOfMonth, int dayOfWeek) { Calendar c = Calendar.getInstance(); //计算出 x年 y月 1号 是星期几 c.set(year, month - 1, 1); //如果i_week_day =1 的话 实际上是周日 int i_week_day = c.get(Calendar.DAY_OF_WEEK); int sumDay = 0; //dayOfWeek+1 就是星期几(星期日 为 1) if (i_week_day == 1) { sumDay = (weekOfMonth - 1) * 7 + dayOfWeek + 1; } else { sumDay = 7 - i_week_day + 1 + (weekOfMonth - 1) * 7 + dayOfWeek + 1; } //在1号的基础上加上相应的天数 c.set(Calendar.DATE, sumDay); return c.getTime(); } /** * 获取某年某月某周的开始时间 * * @param year * @param month * @param weekOfMonth * @param dayOfWeek * @return */ public static Date getWeekFirstDate(int year, int month, int weekOfMonth, int dayOfWeek) { return weekdatetodata(year, month, weekOfMonth, 1); } /** * 获取某年某月某周的结束时间 * @param year * @param month * @param weekOfMonth * @param dayOfWeek * @return */ public static Date getWeekLastDate(int year, int month, int weekOfMonth, int dayOfWeek) { return weekdatetodata(year, month, weekOfMonth, 7); } /** * 当前时间的上一个季度的结束日期 * * @return */ public static Date getLastDayOfTheSeason(){ Date startQuarterDate = DateUtils.getLastDayOfLastQuarter(new Date());//结束季度的最后一天 return startQuarterDate; } /** * 当前时间减去四个季度的时间 * * @return */ public static Date getMinusFourQuarters(){ Date quarterDate = getLastDayOfTheSeason(); return new DateTime(quarterDate).minusMonths(12).plusDays(1).toDate(); } /** * 获取年份从日期 * @param date * @return */ public static String getYearFormDate(Date date){ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy"); return simpleDateFormat.format(date); } }
转载请注明原文地址: https://www.6miu.com/read-2626113.html

最新回复(0)