一个java的小编程,求解疑惑,如下所示的 sum+=1,究竟是个什么作用,为什么要有这个

//通过输入年份月份而自动输出日历表,如windows自带日历
import java.util.Scanner;
public class A4_26 {
public static void main(String[] args){
Scanner in=new Scanner(System.in);
System.out.println("请输入年份:");
int year=in.nextInt();
System.out.println("请输入月份");
int month=in.nextInt();
int sum=0;
for(int i=1900;i<year;i++){
if(i%4==0&&i%100!=0||i%400==0){
sum+=366;
}else{
sum+=365;
}
}//判断年份
for(int i=1;i<month;i++){
if(i==2){
if(year%4==0&&year%100!=0||year%400==0){
sum+=29;
}else{
sum+=28;
}
}else{
if(i==4||i==6||i==9||i==11){
sum+=30;
}else{
sum+=31;
}
}
}//判断月份
sum+=1; //----------------就这个地方,请大神帮解疑惑
int wekday=sum%7;//判断这天是星期几
System.out.println("日\t一\t二\t三\t四\t五\t六");
for(int i=1;i<=wekday;i++){
System.out.print("\t");//向前空出几个空格
}
for(int i=1;i<=30;i++){
if (sum%7==6){
System.out.print(i+"\n");//1900年1月1日是周一,向后是6天换行
}else{
System.out.print(i+"\t");
}
sum++;
}

}
}

就看了下你那行其他太长。。
应该是 星期天是1 (第一天),一直到周6是7,也就是国外的算法
sum+=1相当于sum=sum+1,
假设你不加,那么%是取余,这时候 假设是第7天 7%7 结果是0,明显是错的
所以加上一天是为了计数 1到7
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-13
sum+=1相当于sum=sum+1,
简写。