我是新開發的Android開發人員,我正在嘗試開發一個年齡計算器。用我目前的代碼,我可以正確地找到年份和月份之間的差異,但這些日子並不正確。我知道我做錯了什麼。但我無法弄清楚。 我也使用了jodatime api,但是當我使用它時,我的應用程序關閉了,當我調用這個函數時,我無法理解我做錯了什麼。 我的代碼是:無法在我的Android時代計算器應用程序代碼中拆分幾個月和幾天
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mDateDisplay = (TextView) findViewById(R.id.showMyDate);
mPickDate = (Button) findViewById(R.id.myDatePickerButton);
mPickDate.setOnClickListener(new View.OnClickListener() {
@SuppressWarnings("deprecation")
public void onClick(View v) {
showDialog(DATE_DIALOG_ID);
}
});
dob_Year = c.get(Calendar.YEAR);
dob_Month = c.get(Calendar.MONTH);
dob_Day = c.get(Calendar.DAY_OF_MONTH);
// display the current date
updateDisplay();
}
private void updateAge()
{
current_Year = c.get(Calendar.YEAR);
current_Month = c.get(Calendar.MONTH);
current_Day = c.get(Calendar.DAY_OF_YEAR);
if (current_Day < dob_Day) {
current_Month--;
current_Day+=c.getMaximum(dob_Month);
}
if (current_Month < dob_Month) {
current_Year--;
current_Month += 12;
}
int ageYear=current_Year-dob_Year;
int ageMonths=current_Month-dob_Month;
int ageDays= current_Day-dob_Day;
this.mAgeDisplay.setText(
new StringBuilder()
.append(ageYear).append(" Years ")
.append(ageMonths).append(" Months ")
.append(ageDays).append(" Days "));
}
private void updateDisplay() {
this.mDateDisplay.setText(
new StringBuilder()
// Month is 0 based so add 1
.append(dob_Day).append("-")
.append(dob_Month + 1).append("-")
.append(dob_Year).append(" "));
}
private DatePickerDialog.OnDateSetListener mDateSetListener =
new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
dob_Year = year;
dob_Month = monthOfYear;
dob_Day = dayOfMonth;
updateDisplay();
updateAge();
}
};
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DATE_DIALOG_ID:
return new DatePickerDialog(this,
mDateSetListener,
dob_Year, dob_Month, dob_Day);
}
return null;
}
在此代碼片段dob_變量從日期選擇器獲取它們的值。
他的代碼計算天**等價於你的**,並且更短(我的意思是它的「天」部分是) 。這些鏈接不適合這裏。他不計算差異,但用三個數字--y-m-d表示。這裏是問題 – Gangnus
先生你的功能我得到8973天,如果startDate = 24/05/1988和endDate = 11/01/2013這是不正確的,如果我比較這個結果與勝7內置計算器的結果是8998天。實際上我想要我的結果像24年7個月18天。從我的代碼我發現24年7個月7天。那幾天沒有好轉。 – Teji