1

我目前正在为 Java 分配任务,但我被卡住了。我必须从三个参数中生成生日:日、月和年,它们是 numbers = int。有了这个,我必须对有效日期进行一些检查。我认为这部分已经完成,但我陷入了以下困境:

我想要一个 if 语句来检查这一天,如果这一天是正确的,则应该运行这段代码

if (dag >=1 && dag <=31) 
{
    datum = dag; 
}

datum是一个字符串,因为我想得到这样的日期:DD-MM-YYY 并且dag是一个 Int。因此,每当我尝试编译它时,BlueJ 在这部分都会给出一个错误,说“不兼容的类型”。我认为这是因为我尝试将 Int 放在 String 中。这是否有可能,因为我不知道如何。

4

2 回答 2

3

不要让它成为一个字符串。它不是。我觉得你应该

  1. 创建一个Date对象来表示您的日期(日/月/年组合)
  2. 使用SimpleDateFormat以适当的格式打印该日期

这是正确的OO方式。否则,您最终会得到一堆不同的断开连接的变量,它们组合起来表示某种对象类型,但是您不能原子地操作它们,调用它们的方法等。将所有内容都保存为字符串称为字符串类型(与强类型相反)打字)并且是一种特别糟糕的代码气味!

在某个阶段,请查看Joda-Time以获得比上面建议的更好的日期/时间 API。但是,目前我怀疑您的盘子已经足够了,而无需下载额外的罐子。

于 2012-11-26T19:47:43.077 回答
3

使用String.valueOf方法转换intstring: -

int i = 32;
String str = String.valueOf(i);

当然,请遵循@Brian 的回答中的建议,了解您应该在自己的情况下做什么。

于 2012-11-26T19:46:00.407 回答