Android 考虑闰年计算年龄

Android 考虑闰年计算年龄,android,Android,GetDaysRemaining for NextBirthday()方法不适用于闰年ie。;它显示了377天,而不是1988年剩下的12天……如何修改代码使其工作 public long getDaysRemainingForNextBirthDay(){ String startDate=year+"/"+month+"/"+day; SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM

GetDaysRemaining for NextBirthday()方法不适用于闰年ie。;它显示了377天,而不是1988年剩下的12天……如何修改代码使其工作

public long getDaysRemainingForNextBirthDay(){

          String startDate=year+"/"+month+"/"+day;        
          SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd");
          Date date=null;
          try{
              date=sdf.parse(startDate);
          }
          catch (Exception e) {
            e.printStackTrace();
        }
          Calendar BDay=Calendar.getInstance();
          BDay.setTime(date);
          Calendar today=Calendar.getInstance();
          int BMonth=BDay.get(Calendar.MONTH);
          int CMonth=today.get(Calendar.MONTH);
          BDay.set(Calendar.YEAR,today.get(Calendar.YEAR));
          if (BMonth<=CMonth) {
            BDay.set(Calendar.YEAR,today.get(Calendar.YEAR)+1);
        }
          long millis=(BDay.getTimeInMillis())-(today.getTimeInMillis());
          long remainingDays=millis/(86400000);
          return (remainingDays+1);
      }
public long getdaysremaining for nextbirthday(){
字符串startDate=年+“/”+月+“/”+日;
SimpleDataFormat sdf=新的SimpleDataFormat(“yyyy/MM/dd”);
日期=空;
试一试{
日期=sdf.parse(startDate);
}
捕获(例外e){
e、 printStackTrace();
}
Calendar BDay=Calendar.getInstance();
b日期设置时间(日期);
Calendar today=Calendar.getInstance();
int bmmonth=BDay.get(日历月);
int cmmonth=today.get(Calendar.MONTH);
设置(日历.年,今天.获取(日历.年));

if(b月抱歉,这是Calendar.MONTHOk,但现在我不相信这是你真正的代码。我想检查一下:
if(b月)。我强烈建议你使用Joda时间。这会让你的生活变得简单得多。公共字符串GetDaysResMainingforNextBirthday(){Calendar cal=Calendar.getInstance();int currentYear=cal.get(Calendar.YEAR);DateTime birthDate=new DateTime(currentYear,Integer.parseInt(m),Integer.parseInt(d),0,0);DateTime currentDate=DateTime.now();Period datePeriod=new Period(currentDate,birthDate,PeriodType.days());PeriodFormatter PeriodFormatter=new PeriodFormatterBuilder().appendDays().appendDays();return periodFormatter.print(datePeriod);}返回我10天,我只需要数字,即;10