我目前正在開發一個應用程序,以查找特定日期的年份(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年一次!
添加回答
舉報
0/150
提交
取消