我只是在慢慢学习Java,我在其中一个练习中遇到了问题。该程序将用户输入任意分钟数(我使用示例1000000000),程序将找到剩余的总年数和天数。出于某种原因,我能够在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);
}
}
答案 0 :(得分:4)
您正在计算剩余天数,因此请使用:
int remainingDays = totalDays % 365;
答案 1 :(得分:3)
了解完整年数后,您可以将剩余天数计算为
remainingDays = totalDays - 365 * totalYears;
您也可以使用模运算符。当然,你的简单代码忽略了闰年......
顺便提一下,1,000,000,000 / (60 * 24 * 365)
确实是1902
和
1,000,000,000 / (60 * 24) - 365 * 1902 = 214
答案 2 :(得分:2)
您可能想要使用
int remainingDays = totalDays%365;
代替。 %是模数运算符,它返回小于右操作数的余数