本文已参与「新人创作礼」活动,一起开启掘金创作之路
日期运算(加指定天数、星期几、纯数字年月日等)
1,指定日期加指定天数
/**
* 指定日期加上天数后的日期
* @param num 为增加的天数
* @param currdate newDate 创建时间(增加前的日期)
* @return
* @throws ParseException
*/
public static String plusDay(int num, Date currdate) throws ParseException {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
System.out.println("现在的日期是:" + currdate);
Calendar ca = Calendar.getInstance();
ca.setTime(currdate);
ca.add(Calendar.DATE, num);// num为增加的天数,可以改变的
currdate = ca.getTime();
String enddate = format.format(currdate);
System.out.println("增加天数以后的日期:" + enddate);
return enddate;
}
2,获取指定日期是星期几
2,1星期几的数字
/**
* 获取指定日期是星期几
* @param date
* @return 1-7 1就是星期一
*/
public static int getWeekOfDateIndex(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int index = cal.get(Calendar.DAY_OF_WEEK) - 1;
System.out.println(index + "-----index");
return index;
}
2,2星期几的汉字
/**
* 获取指定日期是星期几
* @param date
* @return 指定日期是星期几
*/
public static String getWeekOfDate(Date date) {
String[] weekDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
System.out.println(w + "-----index");
if (w < 0)
w = 0;
return weekDays[w];
}
3,获取纯数字年月日
/**
* 获取String类型的纯数字年月日 例如:20210407
* @return
*/
public static String getNowDateToString() {
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String date2 = sdf.format(date);
System.out.println(date2);
return date2;
}
4,日期到下一个月的1号
/**
* 日期到下一个月的1号
*
* @param date
* @return
*/
public static String dateGoNextOne(Date date) {
String endDate = "";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String newDate = format.format(date);
String[] dates = newDate.split("-");
int a = Integer.parseInt(dates[1]);
int year = Integer.parseInt(dates[0]);
//当月份等于12,跨年
if (a == 12) {
a = 1;
year++;
} else {
a++;
}
endDate = year + "-" + a + "-01";
return endDate;
}