根据开始结束时间获取中间年月

/**
 * 根据开始结束时间获取中间年月
 * @param dBegin 开始时间
 * @param dEnd 结束时间
 * @param flag 标识 year计算年之间的  month计算月份
 * @return
 */
public static List<String> findDates(String dBegin, String dEnd,String flag) {
   List<String> lDate = null;
   try {
      SimpleDateFormat simpleDateFormat = null;
      if ("month".equals(flag)) {
         simpleDateFormat = new SimpleDateFormat("yyyy-MM");
      } else if ("year".equals(flag)) {
         simpleDateFormat = new SimpleDateFormat("yyyy");
      }
      Date de = simpleDateFormat.parse(dEnd);
      Date db = simpleDateFormat.parse(dBegin);
      lDate = new ArrayList<String>();
      lDate.add(dBegin);
      Calendar calBegin = Calendar.getInstance();
      calBegin.setTime(db);
      Calendar calEnd = Calendar.getInstance();
      calEnd.setTime(de);
      while (de.after(calBegin.getTime())) {
         if ("month".equals(flag)) {
            calBegin.add(Calendar.MONTH,1);
         } else if ("year".equals(flag)) {
            calBegin.add(Calendar.YEAR,1);
         }

         lDate.add(simpleDateFormat.format(calBegin.getTime()));
      }
   } catch (ParseException e) {
      e.printStackTrace();
   }

   return lDate;
}

在这里插入图片描述

获取上个月份的开始和结束时间日可以使用Java中的Calendar类和SimpleDateFormat类。 以下是一个示例代码: ```java import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class LastMonthStartEnd { public static void main(String[] args) { Calendar calendar = Calendar.getInstance(); // 获取当前时间 calendar.add(Calendar.MONTH, -1); // 获取上个月份 int year = calendar.get(Calendar.YEAR); // 获取年份 int month = calendar.get(Calendar.MONTH) + 1; // 获取月份(注意要加1) int days = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); // 获取天数 // 获取上个月份的开始时间日 calendar.set(Calendar.DAY_OF_MONTH, 1); int startYear = calendar.get(Calendar.YEAR); int startMonth = calendar.get(Calendar.MONTH) + 1; int startDay = calendar.get(Calendar.DAY_OF_MONTH); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); System.out.println("上个月份的开始时间:" + sdf.format(calendar.getTime())); // 获取上个月份结束时间日 calendar.set(Calendar.DAY_OF_MONTH, days); int endYear = calendar.get(Calendar.YEAR); int endMonth = calendar.get(Calendar.MONTH) + 1; int endDay = calendar.get(Calendar.DAY_OF_MONTH); System.out.println("上个月份结束时间:" + sdf.format(calendar.getTime())); } } ``` 运行结果如下: ``` 上个月份的开始时间:2021-12-01 上个月份结束时间:2021-12-31 ``` 其中,`calendar.add(Calendar.MONTH, -1)` 方法可以获取上个月份。其他的获取日的方法和获取当前月份的开始结束时间的方法一样。最后,使用 `SimpleDateFormat` 类将日期转换为指定格式的字符串。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值