gpt4 book ai didi

java仅使用逻辑,没有日历,日期或类似的两个日期之间的差异

转载 作者:行者123 更新时间:2023-12-02 11:39:48 25 4
gpt4 key购买 nike

这是我到目前为止所得到的,但我得到的输出只是零。我尝试过在第一年和去年分别使用 for 循环来计算这些年份中的月份,然后对中间的年份进行单独的 for 循环,因为它们将是整年,但我仍然得到错误的输出。我只需要一些指导,正如标题所说,我不能使用日历或日期或任何其他类似的类,只是循环和逻辑。

package cop2250.spring18.week3.ledesma;

import java.util.Scanner;

public class Week3assignment1 {

public static void main(String[] args) {



Scanner input = new Scanner(System.in);

int days1 = 0, days2 = 0, days3 = 0, totalDays = 0, month3 = 0, betweenYears, year3;

System.out.println("Enter a starting Date in the format mm-dd-yyyy: ");
String[] startDate = input.next().split("-");

int month1 = Integer.parseInt(startDate[0]);
int day1 = Integer.parseInt(startDate[1]);
int year1 = Integer.parseInt(startDate[2]);

System.out.println("Enter an ending Date in the format mm-dd-yyyy: ");
String[] endDate = input.next().split("-");

int month2 = Integer.parseInt(endDate[0]);
int day2 = Integer.parseInt(endDate[1]);
int year2 = Integer.parseInt(endDate[2]);


for(year3 = 0; year3 > year1 && year3 < year2; year3++) {
for (month3 = 0; month3 < 12; month3++) {
days1 = daysInMonth(year3, month3);

}
totalDays =+ days1;
}

System.out.println("Days is : "+ totalDays);


}
private static boolean isLeapYear(int year) {
return year % 400 == 0 || (year % 4 == 0 || year % 100 == 0);
}
private static int daysInMonth(int year, int month) {
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
return 31;
if (month == 4 || month == 6 || month == 9 || month == 11)
return 30;
if (month == 2)
return isLeapYear(year) ? 29 : 28;
return 0;
}
}

最佳答案

我在这里看到一些问题:

外层循环从0开始,不是应该从year1开始吗?

内部循环将月份编号为 0 到 11,但您调用的方法将它们编号为 1 到 12。

x =+ y 与 x += y 有很大不同。

如果我给出 2016 年的日期和 2017 年的日期,在我看来,您正在计算这两年中所有月份的天数。因此内循环还需要考虑给定的月份(和日期):

关于java仅使用逻辑,没有日历,日期或类似的两个日期之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48672687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com