计算今天到本月月初的日期集合和过往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;
    }
相关文章
|
3月前
|
Python
【已解决】如何获取到DF数据里最新的调薪时间,就是薪资最高且时间最早?
【已解决】如何获取到DF数据里最新的调薪时间,就是薪资最高且时间最早?
30 1
|
6月前
moment常用操作(日期加减、获取月初月末、季度、年)
moment常用操作(日期加减、获取月初月末、季度、年)
2096 0
|
关系型数据库 MySQL
MySql查询当天、本周、本月、本季度、本年的数据
MySql查询当天、本周、本月、本季度、本年的数据
159 0
|
JavaScript 前端开发
javascript以当前日期为准计算当月、上月、下月直接输出日期的解决方案
javascript以当前日期为准计算当月、上月、下月直接输出日期的解决方案
98 0
判断月份所在的季节
判断月份所在的季节
100 0
计算历史上某日为星期几
计算历史上某日为星期几
92 2
生成以周统计的表头,跨月份的周算在后一个月
这是人力统计的一个表格的表头,根据月份,划分周,每周从周一开始到周日(国内习惯性)。而跨月份的周算在前一个月还是后一个月,我们的需求是算在后一个月。根据情况而定。
249 0
生成以周统计的表头,跨月份的周算在后一个月
[Python]计算指定时间与当前时间相差几年几月几日
[Python]计算指定时间与当前时间相差几年几月几日