Я пытаюсь разработать приложение Android через Android Atudio, чтобы рассчитать возраст человека. Приложение работает без синтаксических ошибок, но есть логическая ошибка в расчетах с датами, например, 12/7/1996, - количество лет и месяцев неверно.
Когда я ввожу дату 1997 / 6/12 результат составляет 23 года 11 месяцев и 6 дней, а ожидаемый результат - 24 года 0 месяцев и 6 дней.
package com.example.helloworldapp;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import java.util.Calendar;
public class MainActivity extends AppCompatActivity {
public void BtnClicked(View BtnView) {
EditText year = findViewById(R.id.year);
EditText month = findViewById(R.id.moth);
EditText day = findViewById(R.id.day);
TextView result = findViewById(R.id.TV);
int differanceOfYears = Calendar.getInstance().get(Calendar.YEAR) - Integer.parseInt(year.getText().toString());
int differanceOfMonthes = Calendar.getInstance().get(Calendar.MONTH) - Integer.parseInt(month.getText().toString());
int differanceOfDays = Calendar.getInstance().get(Calendar.DAY_OF_MONTH) - Integer.parseInt(day.getText().toString());
if (differanceOfDays < 0) {
differanceOfMonthes = differanceOfMonthes - 1;
differanceOfDays = 30 + differanceOfDays;
};
if (differanceOfMonthes < 0) {
differanceOfYears = differanceOfYears - 1;
differanceOfMonthes = 12 + differanceOfMonthes;
};
int numberOfDays = differanceOfDays + differanceOfMonthes * 30 + differanceOfYears * 365;
result.setText("you have lived for " + differanceOfYears + "" + "years, " + differanceOfMonthes + "" + "months and " + differanceOfDays + "" + "days ," + "totally" + numberOfDays + "" + "days");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}