-1
我写了一个程序,根据从日期选择器选择日期来计算人的年龄,其工作的罚款。 现在我增加了一个方法来显示只剩余天数,并在其上的人的生日是他的下一个生日当天如何计算Android中日期选择器选择日期后下一个生日的剩余日期?
private void calculateNextBirthday() {
// TODO Auto-generated method stub
Date dt = new Date();
SimpleDateFormat sdf = new SimpleDateFormat(
"yyyy/MM/dd");
final String strBDay = sdf.format(dt);
try {
dt = sdf.parse(strBDay);
} catch (final java.text.ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
final Calendar c = Calendar.getInstance();
c.setTime(dt);
// c.add(Calendar.DATE, value);
final Calendar today = Calendar.getInstance();
// Take your DOB Month and compare it to current
// month
final int BMonth = c.get(Calendar.MONTH);
final int CMonth = today.get(Calendar.MONTH);
c.set(Calendar.YEAR, today.get(Calendar.YEAR));
c.set(Calendar.DAY_OF_WEEK,
today.get(Calendar.DAY_OF_WEEK));
if (BMonth <= CMonth) {
c.set(Calendar.YEAR,
today.get(Calendar.YEAR) + 1);
}
// Result in millis
final long millis = c.getTimeInMillis()
- today.getTimeInMillis();
// Convert to days
final long days = millis/86400000; // Precalculated
// (24 *
// 60 *
// 60 *
// 1000)
// final String dayOfTheWeek =
// sdf.format(BDay.getTime());
sdf = new SimpleDateFormat("EEEE");
final String dayOfTheWeek = sdf.format(dt);
txt8.setText("" + days + " days");
txt10.setText("" + dayOfTheWeek);
}
在这个方案的问题是剩下的作品今天的日期的基础,但在剩下的日子不是从日期选择器中选择的日期,即意味着即使我从日期选择器中选择任何其他日期,其余日期保持不变,并且日周也显示相同,我希望两者都根据所选日期进行更改
也用两种不同的生日和输出附接2个截图是在我的屏幕截图的最后两行相同
我的程序正确地显示了人的年龄选择从日期选取任何日期时,以同样的方式我想我剩下的日子,并在其上的人的生日,以改变一天当选择从日期选取任何日期 请需要一些帮助,以什么样的变化,我需要在上面的代码做任何 建议将是有益的 感谢您
先生感谢你剩下的日子完美的作品,但先生的日子并没有改变,它总是显示周三和爵士的剩余天数正在改变它每周都发生变化,意味着像从2014年11月25日至2014年12月2日它显示剩下的同一天,它只在一个星期后改变,但我想每天改变它,我知道它是因为DAY_OF_WEEK,该怎么做先生? – 2014-12-03 09:12:34
你需要正确地通过日期。 @arjunnarahari – 2014-12-03 09:13:36