首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编写泛型函数以执行操作

编写泛型函数以执行操作
EN

Stack Overflow用户
提问于 2013-12-16 12:34:03
回答 2查看 72关注 0票数 0

我试图建立用户将进入年份的逻辑(例如2102、2001、1992等)。而返回值为

代码语言:javascript
复制
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“。

我怎样才能做到这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-16 12:41:36

在c#中进行了测试,但也应该在java解决方案中使用模块化操作符(%)和泛型--它适用于任何日期。首先,它除以100,然后使用模运算符-由于您的键顺序是规则的每400年,它也将工作在其他日期,而不是1600-2500。

代码语言:javascript
复制
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;
}
票数 0
EN

Stack Overflow用户

发布于 2013-12-16 12:44:36

通过将正整数除以100,您将得到两个第一位数字。然后,在Java中使用Java:

代码语言:javascript
复制
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;
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20611078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档