我如何在两个日期之间获得一个月和一年

时间:2015-12-30 10:10:08

标签: java android

我需要使用Java来区分两个日期。我需要我的结果是月份和月份。

示例:

Startdate = 2015-04-03 enddate = 2015-05-03结果应为2015年5月APR

Startdate = 2015-12-03 enddate = 2015-01-03结果应该是DEC-2015,JAn-2016

我需要将该值设置为textview如何设置此plz帮助我。

2 个答案:

答案 0 :(得分:1)

    String startdate = "2015-11-30";
    String enddate = "2016-1-30";

    DateFormat formater = new SimpleDateFormat("yyyy-MM-dd");
    DateFormat outputFormater = new SimpleDateFormat("MMM-yyyy");

    Calendar beginCalendar = Calendar.getInstance();
    Calendar finishCalendar = Calendar.getInstance();

    try {
          beginCalendar.setTime(formater.parse(startdate));
          finishCalendar.setTime(formater.parse(enddate));

          if (beginCalendar.get(Calendar.MONTH) != finishCalendar.get(Calendar.MONTH)){
              beginCalendar.set(Calendar.DAY_OF_MONTH, 1);
              finishCalendar.set(Calendar.DAY_OF_MONTH, 2);
          }

          do {
                // add one month to date per loop
                String month_year = outputFormater.format(beginCalendar.getTime());
                Log.d("Date_Range", month_year);
                beginCalendar.add(Calendar.MONTH, 1);
          } while (beginCalendar.before(finishCalendar));
    } catch (ParseException e) {
         e.printStackTrace();
    }

因此,您将以MMM-yyyy格式获得开始日期和结束日期之间的月份和年份。您可以通过拆分month_year string @“ - ”separator来按照您想要的方式处理结果。

答案 1 :(得分:0)

您可以使用SimpleDateFormat 编辑:试试这个

SimpleDateFormat formatter = new SimpleDateFormat("yyyy");

通过获取日历年份来检查您的日期是否在同一年。

int year1=Integer.pareInt(formatter.format(calendar1.getTime()));
int year2=Integer.pareInt(formatter.format(calendar2.getTime()));
year=year1-year2;

然后根据年份打印结果

formatter=new SimpleDateFormat("MMM");
if(year==0)
   System.out.println(formatter.format(calendar1)+"-"+formatter.format(calendar2)+" "+ year);
else
   System.out.println(formatter.format(calendar1)+"-"+year1+","+formatter.format(calendar2)+"-"+year2);