大神帮忙看下 ,java编程输出日历输出后有问题
importjava.util.*;publicclassTest4{publicstaticvoidmain(String[]args){intsum=0;Scanne...
import java.util.*;public class Test4{ public static void main(String[] args){ int sum=0; Scanner in=new Scanner(System.in); System.out.println("请输入年份:"); int A=in.nextInt(); System.out.println("请输入月份:"); int B=in.nextInt(); for(int i=1900;i<A;i++){ if(i%4==0&&i%100!=0||i%400==0){ sum+=366; }else{ sum+=365; } } for(int i=1;i<B;i++){ if(i==2){ if(A%4==0&&A%100!=0||A%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 xq=sum%7; System.out.println("日\t一\t二\t三\t四\t五\t六"); for(int j=1;i<=xq;i++){ System.out.println("\t"); } for (int j=1;i<=30;i++){ if(sum%7==6){ System.out.print(i+"\n"); }else{ System.out.print(i+"\t"); } sum++; } } }}
展开
1个回答
展开全部
import java.util.*;
public class Test4 {
public static void main(String[] args) {
int sum = 0;
int days = 0;
Scanner in = new Scanner(System.in);
System.out.println("请输入年份:");
int A = in.nextInt();
System.out.println("请输入月份:");
int B = in.nextInt();
for (int i = 1900; i <= A; i++) {
if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {
sum += 366;
} else {
sum += 365;
}
}
for (int i = 1; i <= B; i++) {
if (i == 2) {
if (A % 4 == 0 && A % 100 != 0 || A % 400 == 0) {
if(i!=B) {
sum += 29;
}else {
days = 29;
}
} else {
if(i!=B) {
sum += 28;
}else {
days = 28;
}
}
} else {
if (i == 4 || i == 6 || i == 9 || i == 11) {
if(i!=B) {
sum += 30;
}else {
days = 30;
}
} else {
if(i!=B) {
sum += 31;
}else {
days = 31;
}
}
}
}
int xq = sum % 7;
System.out.println("日\t一\t二\t三\t四\t五\t六");
for (int i=0 ; i < xq; i++) {
System.out.print("\t");
}
for (int j=1; j <= days;j++) {
if (sum % 7 == 6) {
System.out.print(j+ "\n");
} else {
System.out.print(j + "\t");
}
sum++;
}
}
}
你的代码有点乱,帮你重新整理了一下
追问
您好,我是java初学者 您这个代码编译,输出完全正确;但我有几个地方看不懂,请您帮忙解答下:
①、if(i!=B) 是什么意思
②、 if(i!=B) {
sum += 29;
}else {
days = 29;
这个else后面跟这个days=29,也有点不太清楚,
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询