计算今天到本月月初的日期集合和过往12个月的集合

简介: 计算方法如下,直接上代码。
public class TimeUtils {
  //计算今天到本月月初的时间集合
  public static List<Date> getDayListOfMonth(){
       SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
       List<Date> list = new ArrayList<>();
       Calendar calender = Calendar.getInstance();
       int year = calender.get(Calendar.YEAR);//年份
       int month = calender.get(Calendar.MONTH)+1;//月份
       int day = Integer.parseInt(sdf.format(calender.getTime()).substring(8));
       for (int i = 1; i <= day; i++) {
           String aDate = String.valueOf(year)+"-"+month+"-"+i;
           Date parse = null;
               try {
                   parse = sdf.parse(aDate);
               } catch (ParseException e) {
                   e.printStackTrace();
               }
           list.add(parse);
       }
       return list;
   }
}
public static List<String> monthsOfYear(){
        //计算过去12个月包含本月
    List<String> monthList=new ArrayList<>();
     LocalDate today = LocalDate.now();
          for(int i = 0;i < 12; i++){
              LocalDate localDate = today.minusMonths(i);
              String month = localDate.toString().substring(0,7);            
              monthList.add(month);
          }
      return monthList;
    }


  /**
  * @Title: getDays
  * @Description:计算某一年某一月的日期集合
  * @author xiaojie
  * @param year
  * @param month
  * @return
  * @throws
  */
  public static List<Date> getDays(int year, int month) {
   SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
   SimpleDateFormat sdfDay = new SimpleDateFormat("yyyy-MM-dd");
   List<Date> list = new ArrayList<Date>();
   Calendar calendar = Calendar.getInstance();
   try {
    calendar.setTime(sdf.parse(year+"-"+month));
    int day =calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
      for (int i = 1; i <= day; i++) {
            String aDate = String.valueOf(year)+"-"+month+"-"+i;            
            Date parse = sdfDay.parse(aDate);            
            list.add(parse);
        }
  } catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
  }  
  return list;
  } 


/*
 * 根据日期获取周几
 * @param date
 * @todo
 * @author xiaojie
 * @date 2021/8/3 15:55
 * @return java.lang.String
 */
    public static String getWeek(Date date){
        SimpleDateFormat sdf = new SimpleDateFormat("EEEE");
        String week = sdf.format(date);
        return week;
    }
相关文章
|
9月前
|
Java API Maven
【现成工具】java获取国家法定节假日包含指定月份节假日和周末
【现成工具】java获取国家法定节假日包含指定月份节假日和周末
1333 0
|
2月前
moment常用操作(日期加减、获取月初月末、季度、年)
moment常用操作(日期加减、获取月初月末、季度、年)
257 0
|
12月前
|
JavaScript 前端开发
javascript以当前日期为准计算当月、上月、下月直接输出日期的解决方案
javascript以当前日期为准计算当月、上月、下月直接输出日期的解决方案
69 0
判断月份所在的季节
判断月份所在的季节
58 0
计算历史上某日为星期几
计算历史上某日为星期几
79 2
|
算法
算法竞赛基础题做题记录:月份天数
算法竞赛基础题:月份天数
107 1
生成以周统计的表头,跨月份的周算在后一个月
这是人力统计的一个表格的表头,根据月份,划分周,每周从周一开始到周日(国内习惯性)。而跨月份的周算在前一个月还是后一个月,我们的需求是算在后一个月。根据情况而定。
192 0
生成以周统计的表头,跨月份的周算在后一个月
|
API
用节假日api计算两个日期之间的工作日天数
   最近遇到要求两个日期之间的工作日天数的问题,于是自己思考,进行了一下简单处理。主要是在循环处理上进行了精简。然后利用节假日api 直接输出了两个日期之间的工作日,并且做了一些扩展.可以利用参数获取两个日期之间的工作日和节假日情况     要想获取天数的话直接count一下返回的data数量即可 接口文档地址:http://tool.
8600 0
小视频源码,判断选择的日期是否是今天、本周、本月
小视频源码,判断选择的日期是否是今天、本周、本月
156 0