Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
日期计算Java分配_Java_Math_If Statement_Conditional - Fatal编程技术网

日期计算Java分配

日期计算Java分配,java,math,if-statement,conditional,Java,Math,If Statement,Conditional,定义一个Java方法,将三个整数值(一个月、一天和一年)作为参数和 返回一年中该天的数字(介于1和365之间的整数,或闰年为366)。你的 方法应具有以下标题: 公共静态int dayNum(int月、int日、int年) 要计算给定日期的天数,请使用以下公式: a。dayNum=31*(第1个月)+天 b。如果月份在2月(2)之后,则从dayNum中减去(4*month+23)/10 c。如果年份是闰年且日期在2月29日之后,则将1添加到dayNum 例如,考虑2000年3月2日。dayNum

定义一个Java方法,将三个整数值(一个月、一天和一年)作为参数和 返回一年中该天的数字(介于1和365之间的整数,或闰年为366)。你的 方法应具有以下标题: 公共静态int dayNum(int月、int日、int年) 要计算给定日期的天数,请使用以下公式:

a。dayNum=31*(第1个月)+天

b。如果月份在2月(2)之后,则从dayNum中减去(4*month+23)/10

c。如果年份是闰年且日期在2月29日之后,则将1添加到dayNum

例如,考虑2000年3月2日。dayNum是31*(3-1)+2或64。三月之后 二月,所以我们减去(4*3-23)/10,或35/10,或3(记住使用整数除法,它 截断余数)。这给了我们一个61天的数字。然而,2000年是闰年 3月2日紧接着2月29日,因此我们在dayNum中添加1。我们的最终答案告诉我们,2000年3月2日, 这是一年中的第62天

当我测试这个方法时,我总是得到不准确的结果。如果我进入2000年3月2日,它会告诉我这是第64天,如果我进入2月29日,它会告诉我这是第57天。若对我的代码进行任何修改,使其符合作业规范,并解释我做错了什么,我们将不胜感激

public static int dayNum (int month, int day, int year)
{
    int dayNum;
    dayNum = 31 * (month - 1) + day;

    if(month==2)
    {
        dayNum = dayNum - (4 * month + 23)/10;

        if(((year % 4==0 || year % 400 == 0 && (year % 100 != 0)))&&(month>2))
        {
            dayNum= dayNum + 1;

        }


    }
    return dayNum;
“三月在二月之后”,但是你的
if
声明只检查二月

if(month==2)
你需要检查二月之后的所有月份

if(month >= 3)


“三月在二月之后”,但是你的
if
语句只检查二月?我不确定这是否有帮助,但是b部分有(4*3+23),c部分有(4*3-23)这不是失败的原因-但是你的闰年表达式是错误的。应该是
年份%400==0 |年份%4==0&&year%100!=0
-在任何您想让其最具可读性的地方插入括号(几乎)。否。“月在二月之后”。如果(月份>2),则应为
if
if(month > 2)