栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

获取指定年的月份集合,获取指定月的日期集合,获取指定周的日期集合

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

获取指定年的月份集合,获取指定月的日期集合,获取指定周的日期集合

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;


public class DateUtils {


    
    public static List getMonthList(Integer yearNum){
        List list = new ArrayList<>();
        Calendar instance = Calendar.getInstance();
        if (null == yearNum) {
            yearNum = 0;
        }
        int year = instance.get(Calendar.YEAR)+yearNum;
        for(int i=1;i<13;i++){
            String month = "";
            if(i<10){
                month = year + "-0" + i;
            }else{
                month = year + "-" + i;
            }
            list.add(month);
        }
        return list;
    }

    
    public static List getMonthList(String startTime, String endTime) {
        // 返回的日期集合
        List list=new ArrayList();
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM");
        try {
            Date start = dateFormat.parse(startTime);
            Date end = dateFormat.parse(endTime);
            Calendar tempStart = Calendar.getInstance();
            tempStart.setTime(start);
            Calendar tempEnd = Calendar.getInstance();
            tempEnd.setTime(end);
            tempEnd.add(Calendar.MONTH, +1);// 日期加1(包含结束)
            while (tempStart.before(tempEnd)) {
                String day=dateFormat.format(tempStart.getTime());
                list.add(day);
                tempStart.add(Calendar.MONTH, 1);
            }
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return list;
    }

    
    public static List getMonthFirstLastDayList(Integer monthNum){
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

        List list = new ArrayList<>();
        if (null == monthNum) {
            monthNum = 0;
        }

        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.MONTH, monthNum);
        calendar.set(Calendar.DAY_OF_MONTH, 1);
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        list.add(sdf.format(calendar.getTime()));

        Calendar calendar1 = Calendar.getInstance();
        calendar1.add(Calendar.MONTH, monthNum+1);
        calendar1.set(Calendar.DAY_OF_MONTH, 1);
        calendar1.add(Calendar.DATE, -1);

        list.add(sdf.format(calendar1.getTime()));
        return list;
    }

    
    public static List getMonthDayList(Integer monthNum){
        List monthFirstLastDayList = getMonthFirstLastDayList(monthNum);
        return getDayList(monthFirstLastDayList.get(0), monthFirstLastDayList.get(1));
    }

    
    public static List getDayList(String startTime, String endTime) {
        // 返回的日期集合
        List list=new ArrayList();
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        try {
            Date start = dateFormat.parse(startTime);
            Date end = dateFormat.parse(endTime);
            Calendar tempStart = Calendar.getInstance();
            tempStart.setTime(start);
            Calendar tempEnd = Calendar.getInstance();
            tempEnd.setTime(end);
            tempEnd.add(Calendar.DATE, +1);// 日期加1(包含结束)
            while (tempStart.before(tempEnd)) {
                String day=dateFormat.format(tempStart.getTime());
                list.add(day);
                tempStart.add(Calendar.DAY_OF_YEAR, 1);
            }
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return list;
    }

    
    public static List getWeekDayList(Integer weekNum) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

        if (null == weekNum) {
            weekNum = 0;
        }
        Calendar calendar1 = Calendar.getInstance();
        Calendar calendar2 = Calendar.getInstance();
        int dayOfWeek = calendar1.get(Calendar.DAY_OF_WEEK) - 1;
        int offset1 = 1 - dayOfWeek;
        int offset2 = 7 - dayOfWeek;
        calendar1.add(Calendar.DATE, offset1 - 7*weekNum);
        calendar2.add(Calendar.DATE, offset2 - 7*weekNum);
        String lastBeginDate = sdf.format(calendar1.getTime());
        List list = new ArrayList<>();
        list.add(lastBeginDate);
        while (calendar2.after(calendar1)){
            calendar1.add(Calendar.DAY_OF_MONTH, 1);
            lastBeginDate = sdf.format(calendar1.getTime());
            list.add(lastBeginDate);
        }
        return list;
    }

    public static void main(String[] args) {
        List monthList = getMonthList(-2);
        monthList.forEach(System.out::println);

        List monthList1 = getMonthList("2022-02", "2022-05");
        monthList1.forEach(System.out::println);

        List monthFirstLastDayList = getMonthFirstLastDayList(-2);
        System.out.println(monthFirstLastDayList);

        List monthDayList = getMonthDayList(-3);
        System.out.println(monthDayList);

        List weekDayList = getWeekDayList(-5);
        System.out.println(weekDayList);

    }

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/944756.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号