开始记笔记了,一个好的开始
package com.hanfengyeqiao.utils;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* 日期工具类
*/
public class DateUtil {
/**
* 根据Date型的日期,取Calendar型的日期
* @param date Date型的日期
* @return Calendar型的日期
*/
public static Calendar getCalendar(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
return cal;
}
/**
* 日期计算,日加减
* @param date 初始日期
* @param amount 天数增量(负数为减)
* @return 计算后的日期
*/
public static Date addDays(Date date, int amount) {
Calendar cd =getCalendar(date);
cd.add(Calendar.DATE, amount);
return cd.getTime();
}
/**
* 判断指定年份日期的年份是否为闰年
* @param date 日期
* @return 闰年ture,非闰年false
*/
public static boolean isLeapYear(Date date) {
int year = getCalendar(date).get(Calendar.YEAR);
return isLeapYear(year);
}
/**
* 判断指定年份日期的年份是否为闰年
* @param year 年份数字
* @return 闰年ture,非闰年false
*/
public static boolean isLeapYear(int year) {
if ((year % 400) == 0) {
return true;
}
else if ((year % 4) == 0) {
if ((year % 100) == 0) {
return false;
}
else {
return true;
}
}
else {
return false;
}
}
/**
* 获取指定日期前一个月的第一天
*/
public static String getAgoMonthFirstDay(Date date){
Calendar calendar =getCalendar(date);
SimpleDateFormat sdf=new SimpleDateFormat("YYYY-MM-dd");
calendar.add(Calendar.MONTH, -1);
calendar.set(Calendar.DAY_OF_MONTH,1);
return sdf.format(calendar.getTime());
}
/**
* 获取指定日期前一个月的最后一天
*/
public static String getAgoMonthLastDay(Date date){
Calendar calendar =getCalendar(date);
SimpleDateFormat sdf=new SimpleDateFormat("YYYY-MM-dd");
calendar.set(Calendar.DAY_OF_MONTH, 0);
return sdf.format(calendar.getTime());
}
public static void main(String[] args) {
System.out.println(getAgoMonthLastDay(new Date()));
}
}
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/16898.html