嗨,我正在开发一个与数字学有关的android应用程序。在这里我需要计算当前数字的对应值。首先,我将提供有关如何计算当前数字的信息。在数字学中,每个字母都有其自己的值。该值在下面给出。
A-1,B-2,C-3,D-4,E-5,F-6,G-7,H-8,I-9
J-1,K-1,L-3,M-4,N-5,O-6,P-7,Q-8,R-9
S-1,T-2,U-3,V-4,W-5,X-6,Y-7,Z-8
我的问题是我需要显示2012年至2022年一个人的当前工作号码。它是这样计算的。如果假设我的名字Jocheved并且出生日期为12-02-1988,那么在1988年,我的字母为J,因为这是我的名字的第一个字母,并且根据上表所给出的值J为1,所以J在我一生中的作用是1年,即从1988年至1989年,我的下一个字母是O,它的值是6。因此,O的影响将持续6年,即,从1989年至1995年,从1996年开始,C的影响将开始并且将持续下去像这样,一旦字母结束,它将从我的情况下的首字母再次开始,即J。
在我的程序中,我需要显示2012年至2022年的有效人员信。我开发了一个程序,可以显示我的DOB到2022年的值,但我只需要2012年的值。那意味着它应该像
2012年-X
2013 -X像这样..我在下面提供我的代码..如果有人可以帮助..请帮助
tv23.setText(getValueCycle2(2022));
private CharSequence getValueCycle2(int endYear) {
// TODO Auto-generated method stub
int c = 0;
String out = "FName\n\n";
char[] cycle = getLetterCycle();
if(birthYear + 1 > endYear)
{
return "";
}
for (int i = birthYear + 1; i <= endYear ; i++)
{
out += cycle[c] + "\n";
Log.v(TAG, "i - " + i + " : c - " + c + " : cycle(c) - " + cycle[c]);
c++;
if (c == cycle.length)
{
c = 0;
}
}
return out;
}
private char[] getLetterCycle() {
// TODO Auto-generated method stub
int value;
char ch;
String str = "";
for (int i = 0; i < fName.length(); i++)
{
ch = fName.charAt(i);
if (ch >= 'A' && ch <= 'Z')
{
value = letterValue(ch);
for (int j = 0; j < value; j++)
{
str += ch;
}
}
}
return str.toCharArray();
}
private int letterValue(char c) {
// TODO Auto-generated method stub
if (c < 65 || c > 90)
{
return 0;
}
int v = (c - 64) % 9;
return v == 0 ? 9 : v;
}
最佳答案
我不确定我是否理解您的问题。如果只想打印2012年的输出,则只需要两件事:
将方法签名更改为“
private static CharSequence getValueCycle2(int startYear, int endYear)
将Log.v更改为
if (i >= startYear) {
Log.v(TAG, "i - " + i + " : c - " + c + " : cycle(c) - " + cycle[c]);
}
将该方法称为
tv23.setText(getValueCycle2(2012,2022));
还是我错过了什么?