我试图制作用户将进入年份的逻辑(例如2102,2001,1992等),返回值将是
Range | Return-value
1600-1699 | 2
1700-1799 | 5
1800-1899 | 3
1900-1999 | 1
2000-2099 | 2
2100-2199 | 5
2200-2299 | 3
2300-2399 | 1
2400-2499 | 2
系列将继续......
示例1:假设用户输入了1900-1999的1991年,程序将输出返回值= 1(从表中)。我想为此制定一个独立的逻辑。
示例2:如果用户输入2521(2500-2599范围),则根据系列(2,5,3,1)的输出值将为“5”。
我该如何做到这一点?
答案 0 :(得分:0)
在c#中测试过,但也应该在java中使用 - 模数运算符(%)和泛型的解决方案 - 它适用于任何日期。 首先它除以100然后使用模运算符 - 因为你的密钥订单每400年定期一次,它也适用于1600-2500之外的其他日期。
private int getKeyOf(int year)
{
switch (year / 100 % 4)
{
case 0:
return 2;
case 1:
return 5;
case 2:
return 3;
case 3:
return 1;
}
return -1;
}
答案 1 :(得分:0)
通过将正整数除以100,您将获得2个第一位数字。然后,在Java中给出:
protected int getKeyOf(int year) {
switch (year / 100) {
case 16:
return 2;
case 17:
return 5;
case 18:
return 3;
case 19:
return 1;
default:
return -1;
}
}