当前位置: 首页 > 知识库问答 >
问题:

在JAVA中创建一周中的日子的自定义集合

朱浩大
2023-03-14

我想要一个这样的自定义日历:

enum TradingDays {Monday, Tuesday, Wednesday, Thursday, Friday};

然后我需要对它进行迭代,并检查某个特定的枚举元素是否是今天的星期几。问题是JAVA日历与我日历中的一周天数不匹配。所以:

Calendar now = Calendar.getInstance();

TradingDays.Monday is not equal to any of now.get(Calendar.DAY_OF_WEEK);

那么,如何将日历TradingDays中的周一、周二等指定为JAVA日历中的相同类型(在本例中为整数值)?

另外,我需要像这样的日历交易日,因为它会显示给用户,让用户选择交易的日期。

共有3个答案

邴俊友
2023-03-14

在枚举中创建一个构造函数,该构造函数接受int值:

公共类日历{

enum TradingDays {
Monday(2), Tuesday(3), Wednesday(4), Thursday(5), Friday(6);

private int value;

private TradingDays(int value) {
    this.value = value;
}
};

public static void main(String[] args) {

Calendar now = Calendar.getInstance();

if (now.get(Calendar.DAY_OF_WEEK) == TradingDays.Tuesday.value) {
    // Chose Wednesday as the day to trade
    System.out.println(now.get(Calendar.DAY_OF_WEEK));
    System.out.println(TradingDays.Tuesday.value);
}
}

}

董元徽
2023-03-14

使用enums,你可以做很多你可能熟悉的事情:

文件<代码>交易日。java:

public enum TradingDays {
    Monday(Calendar.MONDAY),
    Tuesday(Calendar.TUESDAY),
    Wednesday(Calendar.WEDNESDAY),
    Thursday(Calendar.THURSDAY),
    Friday(Calendar.FRIDAY);

    private int calendarValue;

    TradingDays(int calendarValue) {
        this.calendarValue = calendarValue;
    }

    public static TradingDays today() {
        return fromCalendarValue(Calendar.getInstance().get(Calendar.DAY_OF_WEEK));
    }

    public static TradingDays fromCalendarValue(int calendarValue) {
        for(TradingDays td : TradingDays.values()) {
            if(td.calendarValue == calendarValue) {
                return td;
            }
        }
        throw new IllegalArgumentException(calendarValue + " is not a valid TradingDays calendarValue");
        // or simply return null
    }

};
汪兴为
2023-03-14

可以尝试在枚举中使用构造函数,如本例所示:

    public enum Currency {
    PENNY(1),
    NICKLE(5),
    DIME(10),
    QUARTER(25);

     private final int value;
     
     private Currency(int value) {
         this.value=value;
     }
}

迭代时可以使用coin。价值观如下:

for(Currency coin: Currency.values()){
        
        System.out.println(coin+" "+coin.value);
        if(coin.value==1){
            System.out.println("THIS is the PENNY");
        }
        
    }

哪个输出是:

1便士

这是便士

五分镍币

10美分

第25季度

 类似资料:
  • 问题内容: 有没有一种方法可以JButton用您自己的按钮图形而不是仅在按钮内部创建图像? 如果没有,是否还有另一种方法可以JButton在Java中创建自定义? 问题答案: 当我第一次学习Java时,我们不得不制造Yahtzee,我认为创建自定义的Swing组件和容器会很酷,而不仅仅是在一个组件上绘制所有内容JPanel。Swing当然,扩展组件的好处是能够添加对键盘快捷键和其他辅助功能的支持,

  • 在一次采访中,我最近被问到以下问题: 有没有其他方法可以创建自定义的,而不使用: 扩展异常类或的子类,用于检查异常 为未检查的异常扩展或的子类。 可能的答案是什么?

  • 有人能帮我创建balow图像剪切搜索栏吗?我已经用自定义拇指和分段文本浏览过SeekBar,还有SeekBar拇指位置问题 但是我没有成功创建我的客户搜索栏,请帮助我

  • 问题内容: 如何在Java中创建自定义异常? 问题答案: 要定义受检查的异常,请创建的子类(或子类的层次结构)。例如: 可能引发或传播此异常的方法必须声明它: …,并且调用此方法的代码必须处理或传播此异常(或同时处理): 你会在上面的示例中注意到该错误IOException已被捕获并重新抛出为。这是用于封装异常的常用技术(通常在实现API时)。 有时在某些情况下,你不想强制每个方法在其throws

  • 我想用java为创建自定义注释。我想用这个注释比较两个字符串值,比较后会返回一个

  • 下面是我的FragmentActivity和DialogFragment。我尝试创建一个自定义AlertDialog。我已经部分实现了如下图所示。如何消除自定义AlertDialog周围的白色区域? 下面是我的alertdialog布局xml fragment_dialog.xml