gpt4 book ai didi

java - 如何正确计算年份方法

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:43:14 25 4
gpt4 key购买 nike

您好,以下方法不太有效:

public static int dayInYear(int day, int month, int year) {
// Returns the number (1.. 366) of the day on which day/month/year falls
int dayNumber = (month - 1) * 31 + day;
if (month > 2) {
dayNumber = dayNumber - ((4 * month + 23) / 10);
if (isLeapYear(year)) dayNumber++;
}
return dayNumber;
} // dayInYear

public static boolean isLeapYear(int year)
{
return year % 400 == 0 || (year % 4 == 0 && year % 100 != 0);
}

当我把它放入一个程序时,它编译但没有给出正确的答案我进行了桌面检查,问题出在 dayInYear 方法中

例如:2009 年 2 月 5 日应该产生 36,但我得到 122

对正确方法的任何见解表示赞赏...

最佳答案

java.time

看起来您正在尝试推出自己的年计算器。但是,如果您想利用前辈开发人员的辛勤工作,您可以使用 java.timeLocalDate在一个简单的一行中进行此计算。

public static int dayInYear(int day, int month, int year) {
return LocalDate.of(year, month, day).getDayOfYear();
}

这些 java.time 类内置于 Java 8 及更高版本中,请参阅 Oracle Tutorial .

关于java - 如何正确计算年份方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39421597/

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