下面的year和month是需要输入的两个变量,分别是年和月,totaldays是该月之前的总天数,beforedays是这一年里该月之前的总天数。
我想求的是该月的第一天是星期几,我看了某书上给的方法是用(totaldays+1)%7结果是多少那就是星期几,这行我不太懂,为什么要加1呢?请帮我讲解一下好吗?
boolean runnian;
if(year%4==0&&!(year%100==0)||year%400==0)
{
runnian=true;
}
else
{
runnian=false;
}
int totaldays=0;
int j=1;
while(j<year)
{
if(j%4==0&&!(j%100==0)||j%400==0)
totaldays+=366;
else
totaldays+=365;
j++;
}
int beforedays=0;
for(int i=1;i<month;i++)
{
switch(i){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:days=31;break;
case 2:
if(runnian)
{
days=29;
}
else
{
days=28;
}
break;
default:days=30;break;
}
beforedays+=days;
}
totaldays+=beforedays;
int firstofmonth=(totaldays+1)%7;//问题