2017-04-14 291 views
0

以下是我的代碼。我在這裏想要實現的是我從日期選擇器中選擇一個日期,並且將其設置爲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); 


    } 

回答

1

這將幫助你獲得日期遞增

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)',並根據需要編寫上述邏輯並進行修改 –

0

您可以使用下面的代碼:

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