1, the date of the subtraction operation
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class DateCalculate { private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); /** * 获取形如yyyy-MM-dd HH:mm:ss * @param date * @return */ public static String datetimeToString(Date date) { return sdf.format(date); } /** * 根据时间字符串获取日期 * @param dateString * @return * @throws ParseException */ public static Date stringToDatetime(String dateString) throws ParseException { return sdf.parse(dateString); } /** * 获取本月最后一天 * @return */ public static Date getMonthStartDate(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.set(Calendar.DAY_OF_MONTH,1); return calendar.getTime(); } /** * 获取本月最后一天 * @return */ public static Date getMonthEndDate(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.set (Calendar.DAY_OF_MONTH, calendar.getActualMaximum (Calendar.DAY_OF_MONTH)); return calendar.getTime(); } / ** * Retrieves the designated date belongs weeks start time * @param DATE * @return * / public static getBeginWeekDate a Date (a Date DATE) { Calendar = Calendar.getInstance CAL (); cal.setTime (DATE); int = dayOfWeek cal.get (the Calendar.DAY_OF_WEEK); IF (== dayOfWeek. 1) { dayOfWeek + =. 7; } cal.add (Calendar.DATE, 2 - dayOfWeek); return cal.getTime (); } / ** * from the specified date relevant to the circumferential end time * @return * / public static getEndWeekDate a date (a date dATE) { Calendar Calendar.getInstance CAL = (); cal.setTime (DATE); int = dayOfWeek cal.get (the Calendar.DAY_OF_WEEK); IF (== dayOfWeek. 1) { dayOfWeek + =. 7; } cal.add (Calendar.DATE,. 8 - dayOfWeek); return cal.getTime (); } / ** * year dates specified subtraction operation * @param dATE * @param NUM * @return * / public static calculateDateOfYear a date (dATE a date, Integer NUM) { Calendar Calendar Calendar.getInstance = (); calendar.setTime (dATE); Calendar.add (Calendar.YEAR, NUM); return calendar.getTime(); } / ** * day of the month for the specified subtraction operation * @param date * @param NUM * @return * / public static calculateDateOfMonth a Date (DATE a Date, Integer NUM) { Calendar Calendar Calendar.getInstance = (); calendar.setTime (DATE); Calendar.add (the Calendar.MONTH, NUM ); return calendar.getTime (); } / ** * add and subtract operations on the date specified number of days * @param dATE * @param negative integer positive integer NUM * @return * / public static calculateDateOfDay a date (dATE a date, integer NUM) { Calendar Calendar Calendar.getInstance = (); calendar.setTime (DATE); calendar.add(Calendar.DAY_OF_MONTH,num); return calendar.getTime(); } public static void main(String[] args) throws ParseException { System.out.println(datetimeToString(getMonthStartDate(sdf.parse("2019-12-04 12:09:52")))); System.out.println(datetimeToString(getEndWeekDate(sdf.parse("2019-12-04 12:09:52")))); System.out.println(datetimeToString(calculateDateOfYear(stringToDatetime("2019-12-04 12:09:52"),-2))); } }