-2

我有大约 3 周的 Java 经验,所以请耐心等待。我正在尝试制作一个程序,通过遵循我的老师模板来计算我活了多少天,但是对于我的一生,我无法弄清楚为什么我不断收到“错误”;预期的。

public class age {
public static void main(String[] args) {
    System.out.print("Enter your date of birth");
    int calcDays = (String birthdate);{
        String m1 = birthdate.substring(0,1);
        String m2 = birthdate.substring(3,4);
        String m3 = birthdate.substring(6,9);
        int month = Integer.parseInt(m1);
        int day = Integer.parseInt(m2);
        int year = Integer.parseInt(m3);
        int dd = year * 365 + month * 30 + day;
        return(dd);
    }
    System.out.print("This is a test" + dd);
}

}

4

1 回答 1

2

看起来你有点偏离模板了。这是我认为的意思:

import java.util.Scanner;

public class age {

    public static void main(String[] args) {
        Scanner sysin = new Scanner(System.in); 
        System.out.print("Enter your date of birth");
        String birthdate = sysin.next();
        int dd = calcDays(birthdate);

        System.out.print("This is a test" + dd);
    }

    static int calcDays(String birthdate) {
        String m1 = birthdate.substring(0, 1);
        String m2 = birthdate.substring(3, 4);
        String m3 = birthdate.substring(6, 9);
        int month = Integer.parseInt(m1);
        int day = Integer.parseInt(m2);
        int year = Integer.parseInt(m3);
        int dd = year * 365 + month * 30 + day;
        return (dd);
    }
}

示例运行的输出:

    输入您的出生日期:2000 年 12 月 25 日
    这是一个测试73032

笔记:

  1. import 语句使 Scanner 类可见。
  2. class 语句开始定义名为“age”的类。正常的 Java 约定是将类的名称大写(如“Age”中),但我保留了你的名字。该类包含两个名为 main() 和 calcDays() 的静态方法。
  3. main() 方法是起点。当您运行 Age 类时,它由 Java 运行时执行(通过命令行中的“java Age”或在交互式开发环境中单击“Go”)。
  4. main() 打印提示,使用 Scanner 读取字符串,将该字符串传递给 calcDays() 方法,并打印 calcDays() 返回的整数值。
  5. calcDays() 方法接受一个字符串参数,将其分割成月、日和年的子字符串,将它们转换为整数值并计算一个天数作为结果返回。

试验一下。您会发现即使是格式上的微小变化也会导致异常和大量看起来很嘈杂的输出。随着您开发更多技术,您会找到适应合理变化的方法,并礼貌地拒绝不合理的变化。查看 Java 教程的建议是一个很好的建议,但是如果这是您第一次尝试使用任何语言进行编程,那么您可能想要投资一本初学者的书(Head First Java、Java for Dummies 等),然后回到教程以查看更深入开发的相同材料。

于 2013-10-04T00:38:06.137 回答