/**
* 获取传入日期的月份的第一天或最后一天日期
* @param monthOffset 月偏移,月初为0,月末为1
* @return
*/
public static Date getDayOfMonth(Date date,int monthOffset){
Calendar cal = Calendar.getInstance();
cal.setTime(date);
if (monthOffset == 0){
cal.add(Calendar.MONTH, 0);
cal.set(Calendar.DAY_OF_MONTH, 1);
}else {
cal.add(Calendar.MONTH, 1);
cal.set(Calendar.DAY_OF_MONTH, 0);
}
return cal.getTime();
}
/**
* 获取上周周几的日期,默认一周从周一开始
* @param dayOfWeek
* @param weekOffset 周偏移,上周为-1,本周为0,下周为1,以此类推
* @return
*/
public static Date getDayOfWeek(int dayOfWeek,int weekOffset){
return getDayOfWeek(Calendar.MONDAY,dayOfWeek,weekOffset);
}
/**
* 获取上(下)周周几的日期
* @param firstDayOfWeek {@link Calendar}
* 值范围 <code>SUNDAY</code>,
* <code>MONDAY</code>, <code>TUESDAY</code>, <code>WEDNESDAY</code>,
* <code>THURSDAY</code>, <code>FRIDAY</code>, and <code>SATURDAY</code>
* @param dayOfWeek {@link Calendar}
* @param weekOffset 周偏移,上周为-1,本周为0,下周为1,以此类推
* @return
*/
public static Date getDayOfWeek(int firstDayOfWeek,int dayOfWeek,int weekOffset){
if(dayOfWeek>Calendar.SATURDAY || dayOfWeek<Calendar.SUNDAY){
return null;
}
if(firstDayOfWeek>Calendar.SATURDAY || firstDayOfWeek < Calendar.SUNDAY){
return null;
}
Calendar date=Calendar.getInstance(Locale.CHINA);
date.setFirstDayOfWeek(firstDayOfWeek);
//周数减一,即上周
date.add(Calendar.WEEK_OF_MONTH,weekOffset);
//日子设为周几
date.set(Calendar.DAY_OF_WEEK, dayOfWeek);
//时分秒全部置0
date.set(Calendar.HOUR_OF_DAY, 0);
date.set(Calendar.MINUTE, 0);
date.set(Calendar.SECOND, 0);
date.set(Calendar.MILLISECOND, 0);
return date.getTime();
}
日期工具类
于 2023-08-14 10:36:40 首次发布