一、获取两个日期之间的月份

        String y1 = "2016-02";// 开始时间
        String y2 = "2019-12";// 结束时间

        try {
            Date startDate = new SimpleDateFormat("yyyy-MM").parse(y1);
            Date endDate = new SimpleDateFormat("yyyy-MM").parse(y2);

            Calendar calendar = Calendar.getInstance();
            calendar.setTime(startDate);
            // 获取开始年份和开始月份
            int startYear = calendar.get(Calendar.YEAR);
            int startMonth = calendar.get(Calendar.MONTH);
            // 获取结束年份和结束月份
            calendar.setTime(endDate);
            int endYear = calendar.get(Calendar.YEAR);
            int endMonth = calendar.get(Calendar.MONTH);
            //
            List<String> list = new ArrayList<String>();
            for (int i = startYear; i <= endYear; i++) {
                String date = "";
                if (startYear == endYear) {
                    for (int j = startMonth; j <= endMonth; j++) {
                        if (j < 9) {
                            date = i + "-0" + (j + 1);
                        } else {
                            date = i + "-" + (j + 1);
                        }
                        list.add(date);
                    }

                } else {
                    if (i == startYear) {
                        for (int j = startMonth; j < 12; j++) {
                            if (j < 9) {
                                date = i + "-0" + (j + 1);
                            } else {
                                date = i + "-" + (j + 1);
                            }
                            list.add(date);
                        }
                    } else if (i == endYear) {
                        for (int j = 0; j <= endMonth; j++) {
                            if (j < 9) {
                                date = i + "-0" + (j + 1);
                            } else {
                                date = i + "-" + (j + 1);
                            }
                            list.add(date);
                        }
                    } else {
                        for (int j = 0; j < 12; j++) {
                            if (j < 9) {
                                date = i + "-0" + (j + 1);
                            } else {
                                date = i + "-" + (j + 1);
                            }
                            list.add(date);
                        }
                    }

                }

            }

            // 所有的月份已经准备好
            //System.out.println(list);
            for(int i = 0;i < list.size();i++){
                System.out.println(list.get(i));
            }

        } catch (Exception e) {
            e.printStackTrace();
        }

原文地址:https://www.cnblogs.com/beanbag/p/9719907.html

时间: 2024-07-30 16:07:00

一、获取两个日期之间的月份的相关文章

获取两个日期之间的月份 (具体月份)一个是包含头尾 一个不包含头尾

最近再做一个项目 要计算连个月之间的相差的月份 网上特别多的是计算相差月份数 相差几个月 这个就不贴出来了 一百度全是的 完了之后就是相差月份详细的每个月不包括头尾的 比如计算 2018-12-12-2019-03-31相差的月份是  2019-01 02 "并没有算出 201812 和2019 03月份代码如下: Calendar c1 = Calendar.getInstance(); Calendar c2 = Calendar.getInstance(); c1.set(2014, 9,

Java 获取两个日期之间的日期

1.前期需求,两个日期,我们叫他startDate和endDate,然后获取到两个日期之间的日期 /** * 获取两个日期之间的日期 * @param start 开始日期 * @param end 结束日期 * @return 日期集合 */ private List<Date> getBetweenDates(Date start, Date end) { List<Date> result = new ArrayList<Date>(); Calendar tem

C#获取两个日期之间的间隔

在应用程序开发的过程中,很多时候涉及到时间的操作,例如时间的大小比较以及两个时间的间隔.此文就简单介绍下C#语言如何获取两个时间之前的间隔.在C#中获取两个时间之间的间隔需要使用到TimeSpan类,该对象表示两个日期之间的差异.TimeSpan结构用于测量持续时间的最大时间单位是一天.时间间隔以天为单位进行测量,以确保一致性,因为较大单位时间(例如月和年)的天数会有所不同.TimeSpan对象的值是等于表示的时间间隔的刻度数.刻度等于100纳秒,或一千万分之一秒.获取两个时间的间隔可以使用下列

获取2个日期之间的月份

/** * 获取2个日期之间的月份 * @param beginDate * @param endDate * @param dateList * @return */ public static List<Date> getDifferentMonthBetweenDate(Date beginDate, Date endDate, List<Date> dateList) { beginDate = DateTimeUtil.parseDatetime2Date(beginDa

PHP 获取两个时间之间的月份

## 获取两个时间之间的间距时间 $s = '2017-02-05'; $e = '2017-07-20'; $start = new \DateTime($s); $end = new \DateTime($e); // 时间间距 这里设置的是一个月 $interval = \DateInterval::createFromDateString('1 month'); $period = new \DatePeriod($start, $interval, $end); foreach ($p

PHP 获取两个日期之间的日期数组/月份数组

function getEmptyArr($s_time,$e_time,$type){ $tmp = array(); if($type=='day'){ $s_time = strtotime($s_time); $e_time = strtotime($e_time); while($e_time>=$s_time){ $tmp[] = date('Y-m-d',$e_time); $e_time -= 86400; } }else if('month'){ $s_time = strto

ASP.NET如何获取两个日期之间的天数

方法一: DateTime startdate=DateTime.Parse("2013-11-01"); DateTime enddate = DateTime.Parse("2013-11-11"); int d = enddate.Subtract(startdate).Days; 定义开始时间startdate 结束时间enddate 使用方法Subtract得到两个时间差 方法二: TimeSpan sp = new TimeSpan();String s

获取两个日期之间的日期形成一个集合

/** * @param start 起始日期 * @param end 结束日期 * @return */ public static List<String> getDate(String start,String end){ // SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); List<String> list = new ArrayList<String>(); //保存

8.04 确定两个日期之间的月份数或年数

select mnth,mnth/12from(select (year(max_hd) - year(min_hd))*12 +(month(max_hd) - month(min_hd)) as mnthfrom (select min(hiredate) as min_hd,max(hiredate) as max_hdfrom emp) x) y;