我用三个创建了一个布局Buttons.我的想法是使用这三个按钮作为日期选择器.这三个按钮-,Today,+.如果我按今天按钮显示今天的日期.当我按-它显示昨天的日期.如果我按+它显示明天的日期.没问题.但它只能工作一次.我的要求是,只要我按-它来显示前一天的日期,即19-Aug-2015,18-Aug-2015,17-Aug-2015等等,我的代码
imgtoday.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
googleMap.clear();
Date date1=new Date(System.currentTimeMillis());
SimpleDateFormat sdf=new SimpleDateFormat("dd-MMM-yyyy");
String date=sdf.format(date1);
drawRoute(date);
imgHistory.setClickable(false);
imgHistory.setBackgroundResource(R.drawable.btn_disabled);
calculateDistance(date);
}
});
previousDay=(Button)findViewById(R.id.button9);
nextDay=(Button)findViewById(R.id.button11);
previousDay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
googleMap.clear();
Date date1=new Date(System.currentTimeMillis() - (1000 * 60 * 60 * 24));
SimpleDateFormat sdf=new SimpleDateFormat("dd-MMM-yyyy");
String date=sdf.format(date1);
drawRoute(date);
calculateDistance(date);
}
});
nextDay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
googleMap.clear();
Date date1=new Date(System.currentTimeMillis() + (1000 * 60 * 60 * 24));
SimpleDateFormat sdf=new SimpleDateFormat("dd-MMM-yyyy");
String date=sdf.format(date1);
drawRoute(date);
calculateDistance(date);
}
});
Run Code Online (Sandbox Code Playgroud)
有人请帮忙.谢谢.
R. *_*ang 14
使用日历:
Calendar cal = Calendar.getInstance();
cal.setTime(TODAY);
cal.add(Calendar.DAY_OF_MONTH, 1); //Adds a day
cal.add(Calendar.DAY_OF_MONTH, -1); //Goes to previous day
yourDate = cal.getTime();
Run Code Online (Sandbox Code Playgroud)
这是我用于递增和递减日期的代码
/**
* Get next date from current selected date
*
* @param date date
*/
public Date incrementDateByOne(Date date) {
Calendar c = Calendar.getInstance();
c.setTime(date);
c.add(Calendar.DATE, 1);
Date nextDate = c.getTime();
return nextDate;
}
/**
* Get previous date from current selected date
*
* @param date date
*/
public Date decrementDateByOne(Date date) {
Calendar c = Calendar.getInstance();
c.setTime(date);
c.add(Calendar.DATE, -1);
Date previousDate = c.getTime();
return previousDate;
}
Run Code Online (Sandbox Code Playgroud)
我希望它有帮助!
您可以使用Joda-Time库轻松获取下一天和前几天的信息。
https://github.com/JodaOrg/joda-time
https://github.com/dlew/joda-time-android
例子
LocalDate dateTime = LocalDate.now() // Here 'date' is the current date
dateTime = dateTime.plusDays(1); // get the next day date
Run Code Online (Sandbox Code Playgroud)
您可以找到更多内置函数,例如dateTime.plusYear(1)等。
对于你的代码
previousDay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
googleMap.clear();
LocalDate startDate = LocalDate.now() ;
startDate = startDate.plusDays(-1);
DateTimeFormatter fmt1 = DateTimeFormat.forPattern("You Format here");
String DateInstrg = date.toString(fmt1);
// rest of you code
}
});
nextDay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
googleMap.clear();
LocalDate startDate = LocalDate.now()
startDate = startDate.plusDays(1);
DateTimeFormatter fmt1 = DateTimeFormat.forPattern("You Format here");
String DateInstrg = date.toString(fmt1);
// rest of you code
}
});
Run Code Online (Sandbox Code Playgroud)