关于用 java 语言编写的万年历的解读

阅读下面这条关于万年历的java语言,解读中间的那条“sum+=1;”的作用及其表达的意思。感谢!由于直接复制程序,看得有点眼乱,先上图(程序是刚好衔接的):import... 阅读下面这条关于万年历的 java 语言,解读中间的那条 “ sum += 1; ” 的作用及其表达的意思。
感谢!

由于直接复制程序,看得有点眼乱,先上图(程序是刚好衔接的):

import java.util.Scanner;
public class Test4262{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int year;
System.out.println("请输入年份");
year = in.nextInt();
System.out.println("请输入月份");
int month = in.nextInt();
int sum = 0;
for(int y = 1900 ; y < year ; y++){
if(y % 4 == 0 && y % 100 !=0 || y % 400 ==0){
sum += 366 ;
}else{
sum += 365;
}
}
for(int m = 1 ; m < month ; m++){
if(m == 2){
if(year % 4 == 0 && year % 100 !=0 || year % 400 ==0){
sum += 29;
}else{
sum += 28;
}
}else{
if(m == 4 || m == 6 || m == 9 || m == 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");
}
int t = 0 ;
if(month == 2){
if(year % 4 == 0 && year % 100 !=0 || year % 400 ==0){
t = 29;
}else{
t = 28;
}
}else{
if(month == 4 || month == 6 || month == 9 || month == 11){
t = 30;
}else{
t = 31;
}
}
for(int i = 1 ; i <= t ; i++){
if(sum % 7 == 6){
System.out.print(i+"\n");
}else{
System.out.print(i+"\t");
}
sum++;
}
System.out.println("\n");
}
}
展开
 我来答
NL南乐
2014-07-14 · 超过12用户采纳过TA的回答
知道答主
回答量:41
采纳率:0%
帮助的人:26.8万
展开全部
sum+1就是你所要求的月份的第一天啊,你是算到前一个月底的天数了,得加一才是你所要求的月份的第一天。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式