Java程序中的逻辑错误

Java程序中的逻辑错误,java,Java,我只是在慢慢地学习Java,其中一个练习有问题。该程序需要用户输入任意数量的分钟数(我使用的是100000000),然后该程序将找到剩余的总年数和天数。出于某种原因,我能够在19岁时得到正确的年数,但我在最后一句话中的逻辑是错误的,我没有得到214天 下面是我的程序代码,如果你能让我理解为什么我没有看到正确的答案,请让我知道。另外,我不知道这本书是否错了,但它显示的实际年数是1902年,但如果只有10亿分钟的话,获得1902年是不可能的。这也是一种困惑。感谢所有提前回复 import java.

我只是在慢慢地学习Java,其中一个练习有问题。该程序需要用户输入任意数量的分钟数(我使用的是100000000),然后该程序将找到剩余的总年数和天数。出于某种原因,我能够在19岁时得到正确的年数,但我在最后一句话中的逻辑是错误的,我没有得到214天

下面是我的程序代码,如果你能让我理解为什么我没有看到正确的答案,请让我知道。另外,我不知道这本书是否错了,但它显示的实际年数是1902年,但如果只有10亿分钟的话,获得1902年是不可能的。这也是一种困惑。感谢所有提前回复

import java.util.Scanner;

public class NumberOFYears 
{
    public static void main(String[] args) 
    {
        //Create a Scanner object
        Scanner input = new Scanner(System.in);

        //Prompt user for input
        System.out.print("Please enter number of minutes:");
        int totalMinutes = input.nextInt();

        //Find the number of hours
        int totalHours = totalMinutes / 60;

        //Find the number of days
        int totalDays = totalHours / 24;

        //Find the number of years
        int totalYears = totalDays / 365;

        //Find the number of days left 
        int remainingDays = totalHours % 24;
        System.out.println(remainingDays);

    }
}

您正在计算剩余天数,请使用以下方法:

int remainingDays = totalDays % 365;
您可能想使用

int remainingDays = totalDays%365;

相反.%是模运算符,它返回的余数小于右操作数

一旦知道年数的整数,则计算剩余天数为

remainingDays = totalDays - 365 * totalYears;
也可以使用模运算符。当然,您的简单代码忽略了闰年

顺便说一句,
100000000/(60*24*365)
确实是
1902
,而且

1,000,000,000 / (60 * 24) - 365 * 1902 = 214

剩下的年数和天数。。。直到什么?顺便说一句,你只有1000万分钟,不是1分钟billion@MattBall对不起,没有更好地澄清。10亿分钟,这是多少年和多少天?@Joey Salachipolito抱歉,我打错了零的数字。是的,这是一个非常基本的练习。也许得到19而不是1902的原因是因为我输入了错误的零数。谢谢@Floris的解释。