如何增加从日期选择器中选择的日期?

如何增加从日期选择器中选择的日期?

问题描述:

以下是我的代码。我在这里想要实现的是我从日期选择器中选择一个日期,并且将其设置为curretToday。但是当我到下一个日期时,它会递增今天的日期,而不是递增所选的日期。我不知道我要去哪里错。请帮助我。如何增加从日期选择器中选择的日期?

getDate(icount); 

    iv_refresh.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      icount = 0; 
      getDate(icount); 
     } 
    }); 

    rightarrow.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 


       getDate(++icount); 

     } 
    }); 

    leftarraow.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      getDate(--icount); 
     } 
    }); 



    appTitleTextView = (TextView) findViewById(R.id.tool_bar_app_title_textview); 

    toggle = new ActionBarDrawerToggle(
      this, drawer, toolbar, R.string.drawer_open, R.string.drawer_close); 
} 
private void getDate(int i) { 

    if(new DatePickerFragment(tv_date).datePickerDate == null) { 
     Calendar calendar = Calendar.getInstance(); 
     calendar.add(Calendar.DAY_OF_YEAR, i); 
     currentToday = dateFormat.format(calendar.getTime()); 
     tv_date.setText(currentToday); 


    } else { 

     Calendar calendar = Calendar.getInstance(); 
     calendar.add(Calendar.DAY_OF_YEAR,i); 
     currentToday =new DatePickerFragment(tv_date).datePickerDate; 
     tv_date.setText(currentToday); 


    } 

这将帮助你获得日期递增

public Date getIncrementedDate(Date selectedDate) { 
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 
    Calendar c = Calendar.getInstance(); 
    c.setTime(sdf.parse(selectedDate)); 
    c.add(Calendar.DATE, 1); // number of days to add 
    selectedDate = sdf.format(c.getTime()); // selectedDate is now the new date 
return selectedDate; 
} 
+0

请接受的答案,如果它heped –

+0

我能够递增日期,如果它来自getTime()日期。我的问题是,当我从日期选择器中选择一个日期,我无法增加选定的日期。 –

+0

你必须创建一个方法'getIncrementedDate(Date selectedDate)',并根据需要编写上述逻辑并进行修改 –

您可以使用下面的代码:

public Date incrementDay(Date date) { 
    Calendar c = Calendar.getInstance(); 
    c.setTime(date); 
    c.add(Calendar.DAY_OF_YEAR, 1); 
    return new Date(c.getTimeInMillis()); 
}