我有一个问题,在android中获取一天 . 在我的活动中,我有一个按钮,当我点击此按钮时,我的当前日期将增加到1天,最后一天是星期日 . 如果我点击按钮,直到当天增加到下一周,最后一天将是下一周的下一个星期日 . 当我第一次点击时,我的代码正常工作,当我再次点击我的按钮时,我的当前日期长达7天,我做了研究,但没有找到预期的结果 . 希望你能帮忙 . 像这样的例子:每次按下按钮:
星期一5/6/2017 - 星期日11/6/2017
星期二6/6/2017 - 星期日11/6/2017
星期三7/6/2017 - 星期日11/6/2017
星期四8/6/2017 - 星期日11/6/2017
星期五9/6/2017 - 星期日11/6/2017
星期六10/6/2017 - 星期日11/6/2017
星期日11/6/2017 - 星期日11/6/2017
星期一12/6/2017 - 星期日18/6/2017
星期二13/6/2017 - 星期日18/6/2017
........
这是我的代码:提前谢谢你 .
btnChooseDay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SimpleDateFormat mSimpleDateFormat = new SimpleDateFormat("dd/MM/yyyy");
mCalendar.add(Calendar.DAY_OF_WEEK, 1);
tvDayChoose.setText(getNameOfDay(mCalendar.get(Calendar.DAY_OF_WEEK)) + ", " + mSimpleDateFormat.format(mCalendar.getTime()));
mCalendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY );
tvDayChoose.append(" - " + mSimpleDateFormat.format(mCalendar.getTime()));
}
});
1 回答
你正在做几乎所有事情 . 你正确地设置和获取日期,但是,你在同一个日期通过这一行(
mCalendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY );
. 在结果,你进入循环 . 让我们说今天是6月5日(星期一),所以当你第一次加1时,它变成6月6日(星期二),所以你的星期日是6月4日你回到你的日期 . 现在,你mCalendar设置为6月4日,当你再次点击时,你加1,它变成6月5日,你的星期日变成再次6月4日,你再次将它设置为你的mCalendar,这将它设置回到6月4日 . 这一直在重复 . 所以你的解决方案是使用new Calendar instance
获得星期日,但继续在_2425488上添加1 . 你可能会发现更好创建日历实例的方法,但做一些改变,如保持正常状态:在
mCalendar
上添加1后添加这两行,然后在此
new Calendar instance
中设置星期日日期并使用它,而不是使用mCalenar
. 现在你的mCalendar
保持增量状态,sundayCalendar
根据mCalendar
返回你的星期日日期,每次点击都会增加1 .显示用法的简单类如下: