【问题标题】:I need to create a Java date testing program我需要创建一个 Java 日期测试程序
【发布时间】:2012-01-24 09:38:06
【问题描述】:

我是 Java 新手,正在开发一个名为 GoodDate 的程序,该程序根据参数是否为有效日期(在终端中使用 args)输出 YES 或 NO。由于有很多可能性,感谢美妙的互联网,我应该在这里使用开关,但我在开始时遇到了麻烦。对 n00b 的任何帮助将不胜感激!我也已经有一个闰年计划,我可以把它打包成一个班级,这里是:

public class LeapYear {
    public static void main(String[] args) {
        int year = Integer.parseInt(args[0]);
        java.lang.String isLeapYear;

        isLeapYear = (year % 4 == 0 && year % 100 != 0 || year % 400 == 0 ? "YES"
                : "NO");

        System.out.println(isLeapYear);
    }
}

【问题讨论】:

  • 我想你可以澄清的第一件事是你的实际问题是什么 - 你有一个例外,你得到的数字是否与你期望的不同,等等?您可能还会发现格式化该代码很有帮助,这样您就可以使用 if 语句来打破您的逻辑,而不是在一行中使用三元语句,以便您可以更清晰地思考它?
  • 为什么不使用具有内置功能的库来验证日期。喜欢Joda Time
  • 因为他可能正在尝试解决 Spotify 的 Java 难题,而您不应该使用外部库 ^^:spotify.com/us/jobs/tech/best-before

标签: java command-line-arguments


【解决方案1】:

我会将 isLeapYear 设为 boolean - 真或假。这就是该类型的用途。你为什么要把它设为String

我建议将其单独移动到一个函数中,以便您可以重复使用它:

public class DateUtils {

    public static void main(String [] args) {
        for (String arg : args) {
            // operate on arguments here.
        }
    }

    public static boolean isLeapYear(Date date) {
       return false;  // put your logic here.
    }
}

我没有看到对 java.util.Date 类的单一引用。不利用它是在伤害自己。

您的其他要求太模糊,无法评论。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多