猿问

使用方法时日历给出错误的年份

我必须找出从出生日期算起的年龄,放在测试班的桌子上。这意味着我必须将现在的日期与所选日期的日期相匹配。此外,我将该方法放在主类中。错误是我一直为插入的所有变量获得 2018。从我的代码(不是全部在这里)中,第一个变量应该是 58 而不是 2018。


这是代码。


public static int ageMeth(String dob) {

        dob.split("/");

        int years = 0;

        String tempDate = "";

        boolean month = true;

        if (month) {

            // gets the month converts

            int x = Integer.parseInt(dob.valueOf(0));

            int y = Integer.parseInt(dob.valueOf(1));

            String xy = Integer.toString(x, y);

            int xyNum = Integer.parseInt(xy);

            LocalDateTime date = LocalDateTime.now();

            tempDate = date.toString();

            int p = Integer.parseInt(tempDate.valueOf(5));

            int i = Integer.parseInt(tempDate.valueOf(6));

            String pi = Integer.toString(p, i);

            int piNum = Integer.parseInt(pi);



            // the days

            int x2 = Integer.parseInt(dob.valueOf(2));

            int y2 = Integer.parseInt(dob.valueOf(3));

            String xy2 = Integer.toString(x2, y2);

            int xyNum2 = Integer.parseInt(xy2);


            int p2 = Integer.parseInt(tempDate.valueOf(8));

            int i2 = Integer.parseInt(tempDate.valueOf(9));

            String pi2 = Integer.toString(p2, i2);

            int piNum2 = Integer.parseInt(pi2);



            // the year

            int x3 = Integer.parseInt(dob.valueOf(4));

            int y3 = Integer.parseInt(dob.valueOf(5));

            int xx3 = Integer.parseInt(dob.valueOf(6));

            int yy3 = Integer.parseInt(dob.valueOf(7));

            String xy3 = Integer.toString(x3, y3);

            String xxyy3 = Integer.toString(xx3, yy3);

            int xyNum3 = Integer.parseInt(xy2);

            int xxyyNum3 = Integer.parseInt(xxyy3);


            int p3 = Integer.parseInt(tempDate.valueOf(8));

            int i3 = Integer.parseInt(tempDate.valueOf(9));

            String pi3 = Integer.toString(p3, i3);

            int piNum3 = Integer.parseInt(pi3);


MYYA
浏览 101回答 2
2回答

largeQ

要根据dob传入的年龄查找年龄,您可以使用:public static int ageMeth(String dob) {    return Period.between(LocalDate.parse(dob, DateTimeFormatter.ofPattern("MM/dd/yyyy")),                           LocalDate.now()).getYears();}

倚天杖

看来你有几个错误的印象?Integer.parseInt(someString.valueOf(someIndex))会给你int索引处的数字值someIndex吗someString?不是这样。在 IDE(或编译器)中打开警告。它会告诉你类似“String 类型的静态方法 valueOf(int) 应该以静态方式访问”。这意味着这valueOf不是所讨论的字符串的方法,而是String类的方法(这就是“静态”在这里的意思)。因此,您从中获得的结果与字符串无关。Integer.toString(p, i)会给你一个形成连接的字符串p和i?也不是这样。文档说:以第二个参数指定的基数返回第一个参数的字符串表示形式。似乎它会帮助您了解String类中的方法是如何工作的。此外,您正试图从月、日和年LocalDate的差异中构建一个新的。相反,您应该仅从字符串中的月、日和年构建一个,然后找到该日期与今天之间经过的时间段(就像您已经在做的那样)。您的问题的正确解决方案是 Nicholas K.
随时随地看视频慕课网APP

相关分类

Java
我要回答