嗨,我正在开发一个Android应用程序...其中有一个日期选择器来选择出生日期,在该日期中,当用户输入出生日期时,必须从年份中减去月份,并且必须再次添加值直到达到一位数...我做了一些代码,请检查它是否正确...当我检查它没有解决..如果有人知道请帮助...

sum5=getSum4(tv3.getText().toString());

              i.putExtra("name4", sum5 + "");

date.init(date.getYear(), date.getMonth(), date.getDayOfMonth(),new OnDateChangedListener()
    {


    @Override
    public void onDateChanged(DatePicker  arg0, int arg1, int arg2, int arg3)
    {
        // TODO Auto-generated method stub



     String date=Integer.toString(arg3);
     String month=Integer.toString(arg2);
     String year=Integer.toString(arg1);

     tv3.setText(year + month+1);



    }

});}

    }


public long getSum4(String text)
    {
        // TODO Auto-generated method stub
        long sum5 = 0;
        char[] name4 = new char[text.length()];
        name4 = text.toCharArray();


        for(int i=0; i<text.length(); i++)
        {
            sum5 -= value4( name4[i] );

        }
        while (sum5>9)
        {
            sum5 = findDigitSum(sum5);
        }

        return sum5;
    }


    public long findDigitSum4(long n)
    {
        int sum5 = 0;
        while (n != 0)
        {
            sum5 += n % 10;
            n = n / 10;
        }
        return sum5;
    }



private int value4(char a) {
            // TODO Auto-generated method stub
            switch(a) {
            case '1':
               return 1;

             case '2':
                return 2;

              case '3':
                 return 3;
              case '4':
                  return 4;
              case '5':
              return 5;
              case '6':
                   return 6;

                 case '7':
                    return 7;

                  case '8':
                     return 8;
                  case '9':
                      return 9;
                      default:
                          return 1;

        }


}

}

最佳答案

您可以使用三个edittext,然后分别取年和月的值。然后从年份值中减去它。然后使用您的代码将其变成一位数

07-24 18:41