如何在android中获取前一天和第二天的日期?

Pra*_*mar 1 android date

我用三个创建了一个布局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)


Raj*_*esh 7

这是我用于递增和递减日期的代码

/**
 * 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)

我希望它有帮助!


Jam*_*mil 1

您可以使用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)