废话少说,上代码就完了
package Calender;
import java.util.Scanner;
public class Calender {
public static void main(String[] args) {
System.out.println("请选择您需要的功能:\n 想要获取某年整年日历,请扣1;\n 想要得知某日是星期几,请扣2。");
System.out.print(" 请选择(1 or 2):");
Scanner sc = new Scanner(System.in);
int selection = sc.nextInt();
if(selection==1) {
System.out.print(" 请输入年份:");
int year = sc.nextInt();
int isLeap = 1;
if(year%4==0&&year%100!=0||year%400==0)
isLeap = 1;
else isLeap = 0;//判断闰年
int weekone = (1+2*13+3*(13+1)/5+year+year/4-year/100+year/400)%7;
if(weekone==7)
weekone = 0;
else weekone += 1;
//计算第一天是周几,基姆拉尔森公式
int i = 1,u = 1;
for(i=1;i<=12;i++) {
System.out.print("\n\n"+i+"月:\n\n");
System.out.print("SUN MON TUE WED THU FEI SAT\n");
for(;u<weekone;u++) {
System.out.print("\t");
}
int k = weekone;
if(i==1)
{
k--;
int j=1;
for(j=1;j<=31;j++) {
System.out.print(j+"\t");
k++;
if(k>6) {
System.out.print("\n");
k = 0;
}
}
}
else if(i==3||i==5||i==7||i==8||i==10||i==12)
{
int j=1;
for(j=1;j<=31;j++) {
System.out.print(j+"\t");
k++;
if(k>6) {
System.out.print("\n");
k = 0;
}
}
}
else if(i==2) {
if(isLeap==1) {
int j=1;
for(j=1;j<=29;j++) {
System.out.print(j+"\t");
k++;
if(k>6) {
System.out.print("\n");
k = 0;
}
}
}
else {
int j=1;
for(j=1;j<=28;j++) {
System.out.print(j+"\t");
k++;
if(k>6) {
System.out.print("\n");
k = 0;
}
}
}
}
else {
int j=1;
for(j=1;j<=30;j++) {
System.out.print(j+"\t");
k++;
if(k>6) {
System.out.print("\n");
k = 0;
}
}
}
if(k==7)
weekone = 0;
else weekone = k;
u = 0;
}
}
else {
System.out.print(" 请输入您的日期(年 月 日):");
int y = sc.nextInt();
int m = sc.nextInt();
int d = sc. nextInt();
if(m==1||m==2){
m += 12 ;
y--;
}
int w =(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;
switch(w) {
case 0 : System.out.println(" 该天是星期一。");break;
case 1 : System.out.println(" 该天是星期二。");break;
case 2 : System.out.println(" 该天是星期三。");break;
case 3 : System.out.println(" 该天是星期四。");break;
case 4 : System.out.println(" 该天是星期五。");break;
case 5 : System.out.println(" 该天是星期六。");break;
case 6 : System.out.println(" 该天是星期七。");break;
default : System.out.println("error");
}
}
}
}