亲爱的,

我的Java代码中有一个小问题。代码应将两个长数字相除(这很好用)。当从结果中减去时,它给出零,而应该给出其他结果!

该代码是关于在给定的分钟数内获得年数和天数的。



import java.util.Scanner;

public class TestMinsToYearsDays {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		MinsToYearsDays minsToYearsDays = new MinsToYearsDays();

		Scanner sc = new Scanner(System.in);
		System.out.print("Enter the number of Minutes: ");
		minsToYearsDays.miniute = sc.nextLong();

		long years;
		years = minsToYearsDays.miniute / 525600L;

		long remaining;
		remaining = ((  years-(minsToYearsDays.miniute / 525600L) ) * 365L);

		System.out.println("\n Minutes are approximatly " + years + " years and " + remaining + " days " + minsToYearsDays.miniute);
	}

}

最佳答案

years = minsToYearsDays.miniute / 525600L;


意思是

years-(minsToYearsDays.miniute / 525600L) == 0


因此

remaining = ((years-(minsToYearsDays.miniute / 525600L)) * 365L);


是0。

您的公式有误。如果要计算剩余的分钟数(减去整个年份),则应为:

remainingMinutes = minsToYearsDays.miniute - years * 525600L;


如果要计算剩余整天数,则应为:

remainingDays = (minsToYearsDays.miniute - years * 525600L) / 1440;

07-25 22:53