从日期(和工作日)中查找一年中的哪一天

我目前正在开发一个应用程序,以查找特定日期的年份(1-366)。我这样做是为了比较日期并找出它们之间的时间差异。但是,我目前遇到一些问题...当我将日期设置为12月31日时,它说是361或362天(取决于leap年),如果我将其设置为10月31日,则说是302天,但是我将其设置为11月1日,即311天。你能指出我正确的方向吗?而且,如何确定星期几?


这是我上课查找一年中的某天(常见问题)的方法:


public int finddoy(int month, int day, int year){

    int i = 0;

    int days=0;

    while(i<month) {

        if(month==1){days += 31;}

        if(month==2){days += 28;}

        if(month==3){days += 31;}

        if(month==4){days += 30;}

        if(month==5){days += 31;}

        if(month==6){days += 30;}

        if(month==7){days += 31;}

        if(month==8){days += 31;}

        if(month==9){days += 30;}

        if(month==10){days += 31;}

        if(month==11){days += 30;}

        if(month==12){days += 31;}

        i++;

    }

    if(year%4==0){ if(month>2){days+=1;} }

    return days + day;

}

我刚刚将我的程序与在互联网上找到的图表进行了比较,我的日期错开了……1月,2月和5月是唯一准确的月份(以总天数计)


肥皂起泡泡
浏览 138回答 1
1回答

一只名叫tom的猫

试试这个:public int findday(int month, int day, int year){&nbsp; &nbsp; int i = 0;&nbsp; &nbsp; int days=0;&nbsp; &nbsp; while(i<month) {&nbsp; &nbsp; &nbsp; &nbsp; if(i==0){days += 31;}&nbsp; &nbsp; &nbsp; &nbsp; if(i==1){days += 28;}&nbsp; &nbsp; &nbsp; &nbsp; if(i==2){days += 31;}&nbsp; &nbsp; &nbsp; &nbsp; if(i==3){days += 30;}&nbsp; &nbsp; &nbsp; &nbsp; if(i==4){days += 31;}&nbsp; &nbsp; &nbsp; &nbsp; if(i==5){days += 30;}&nbsp; &nbsp; &nbsp; &nbsp; if(i==6){days += 31;}&nbsp; &nbsp; &nbsp; &nbsp; if(i==7){days += 31;}&nbsp; &nbsp; &nbsp; &nbsp; if(i==8){days += 30;}&nbsp; &nbsp; &nbsp; &nbsp; if(i==9){days += 31;}&nbsp; &nbsp; &nbsp; &nbsp; if(i==10){days += 30;}&nbsp; &nbsp; &nbsp; &nbsp; if(i==11){days += 31;}&nbsp; &nbsp; &nbsp; &nbsp; i++;&nbsp; &nbsp; }&nbsp; &nbsp; if(year%4==0){ if(month>2){days+=1;} }&nbsp; &nbsp; return days + day;}我认为它有效也要注意the年:它们不是每4年一次!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java