最佳答案
package lee;
import java.util.*;
public class Rili4 {
public static void main(String[] agrs){
String a;
Scanner in=new Scanner(System.in);
do{
System.out.println("请输入年份");
int y=in.nextInt();
System.out.println("请输入月份");
int m=in.nextInt();
int sum=0;
for(int i=1900;i
if(i%4==0&&i%100!=0||i%400==0){
sum+=366;
}else{
sum+=365;
}
}
for(int i=1;i
if(i==2){
if(y%4==0&&y%100!=0||y%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 weky=sum%7;
System.out.println("日\t一\t二\t三\t四\t五\t六");
for(int i=1;i<=weky;i++){
System.out.print("\t");
}
if(m==4||m==6||m==9||m==11){
for(int i=1;i<=30;i++){
if(sum%7==6){
System.out.print(i+"\n");
}else{
System.out.print(i+"\t");
}
sum++;
}
}else if(m==2){ //2月天数判断
if(y%4==0&&y%100!=0||y%400==0){
for(int i=1;i<=29;i++){
if(sum%7==6){
System.out.print(i+"\n");
}else{
System.out.print(i+"\t");
}
sum++;
}
}else{
for(int i=1;i<=28;i++){
if(sum%7==6){
System.out.print(i+"\n");
}else{
System.out.print(i+"\t");
}
sum++;
}
}
}else{
for(int i=1;i<=31;i++){
if(sum%7==6){
System.out.print(i+"\n");
}else{
System.out.print(i+"\t");
}
sum++;
}
}
System.out.println("\n是否继续Y"+"/"+"N"+"?");
a=in.next();
}
while(a.equals("Y"));
}
}
追问:
还能优化吗?
最佳答案由网友 只爱新 提供