java 获取某月、某周的第一天、最后一天

2022-07-30,,

java日期工具类(二)

java 获取某月、某周的第一天、最后一天

/**
 * 日期格式化
 */ public static String format(Calendar c, String pattern) { Calendar calendar = null; if (c != null) { calendar = c; } else { calendar = Calendar.getInstance(); } if (pattern == null || pattern.equals("")) { pattern = DATETIME_FORMAT; } SimpleDateFormat sdf = new SimpleDateFormat(pattern); return sdf.format(calendar.getTime()); } 
  1. 获取某月的第一天/最后一天
/**
 * 获得某月第一天
 * @param count (0:本月,-1:上一个月,1:下一个月)
 * @return	yyyy-MM-dd
 */ public static String getNextMonthFirst(int count) { Calendar strDate = Calendar.getInstance(); int day = getDate(strDate); strDate.add(Calendar.DATE,-(day-1)); strDate.add(Calendar.MONTH,count); return format(strDate,"yyyy-MM-dd"); } /**
 * 获得下月最后一天
 * @param count (0:本月,-1:上一个月,1:下一个月)
 * @return	yyyy-MM-dd
 */ public static String getNextMonthEnd(int count) { Calendar strDate = Calendar.getInstance(); int day = getDate(strDate); strDate.add(Calendar.DATE,-day); strDate.add(Calendar.MONTH,count+1); return format(strDate,"yyyy-MM-dd"); } 

测试:

System.out.println("当前时间点是:"+DateUtil.getDataFormat(new Date())); System.out.println("上月第一天是:"+DateUtil.getNextMonthFirst(-1)); System.out.println("本月第一天是:"+DateUtil.getNextMonthFirst(0)); System.out.println("下月第一天是:"+DateUtil.getNextMonthFirst(1)); System.out.println("上月最后一天是:"+DateUtil.getNextMonthEnd(-1)); System.out.println("本月最后一天是:"+DateUtil.getNextMonthEnd(0)); System.out.println("下月最后一天是:"+DateUtil.getNextMonthEnd(1)); 

结果展示:

当前时间点是:2020-08-27 19:27:52
上月第一天是:2020-07-01
本月第一天是:2020-08-01
下月第一天是:2020-09-01
上月最后一天是:2020-07-31
本月最后一天是:2020-08-31
下月最后一天是:2020-09-30 

2. 获取某周的第一天/最后一天

 /**
 * 获得某周星期一的日期
 * @param count (0:本月,-1:上一个月,1:下一个月)
 * @return	yyyy-MM-dd
 */ public static String getNextMonday(int count) { Calendar strDate = Calendar.getInstance(); int day = getDay(strDate); strDate.add(Calendar.DATE,-(day-2)); strDate.add(Calendar.WEEK_OF_YEAR,count); return format(strDate,"yyyy-MM-dd"); } /**
 * 获得某周星期日的日期
 * @param count (0:本月,-1:上一个月,1:下一个月)
 * @return	yyyy-MM-dd
 */ public static String getNextSunday(int count) { Calendar strDate = Calendar.getInstance(); int day = getDay(strDate); strDate.add(Calendar.DATE,8-day); strDate.add(Calendar.WEEK_OF_YEAR,count); return format(strDate,"yyyy-MM-dd"); } 

测试:

System.out.println("当前时间点是:"+DateUtil.getDataFormat(new Date())); System.out.println("上周第一天是:"+DateUtil.getNextMonday(-1)); System.out.println("本周第一天是:"+DateUtil.getNextMonday(0)); System.out.println("下周第一天是:"+DateUtil.getNextMonday(1)); System.out.println("上周最后一天是:"+DateUtil.getNextSunday(-1)); System.out.println("本周最后一天是:"+DateUtil.getNextSunday(0)); System.out.println("下周最后一天是:"+DateUtil.getNextSunday(1)); 

结果展示:

当前时间点是:2020-08-27 19:32:58
上周第一天是:2020-08-17
本周第一天是:2020-08-24
下周第一天是:2020-08-31
上周最后一天是:2020-08-23
本周最后一天是:2020-08-30
下周最后一天是:2020-09-06 

本文地址:https://blog.csdn.net/IT_arookie/article/details/108267015

《java 获取某月、某周的第一天、最后一天.doc》

下载本文的Word格式文档,以方便收藏与打印。