为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

肥皂起泡泡 2021-04-29 14:38:21
我目前正在开发一个应用程序,以查找特定日期的年份(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月是唯一准确的月份(以总天数计)
查看完整描述

1 回答

?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

试试这个:


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

    int i = 0;

    int days=0;

    while(i<month) {

        if(i==0){days += 31;}

        if(i==1){days += 28;}

        if(i==2){days += 31;}

        if(i==3){days += 30;}

        if(i==4){days += 31;}

        if(i==5){days += 30;}

        if(i==6){days += 31;}

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

        if(i==8){days += 30;}

        if(i==9){days += 31;}

        if(i==10){days += 30;}

        if(i==11){days += 31;}

        i++;

    }

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

    return days + day;

}

我认为它有效


也要注意the年:它们不是每4年一次!


查看完整回答
反对 回复 2021-05-19
  • 1 回答
  • 0 关注
  • 137 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信