package java34;
import java.util.*;
public class 万年历 {
private static Scanner in;
private static Scanner sc;
public static void main(String[] args) {
// TODO Auto-generated method stub
int e,year,mon,b,c;
boolean a;
in = new Scanner(System.in);
while(true)
{
System.out.println("----选择功能-----");
System.out.println("1.判断闰年");
System.out.println("2.判断某年某月有多少天");
System.out.println("3.计算某年某月前距离1900年1月1日的总天数");
System.out.println("4.输出某年某月日历");
System.out.println("5.退出");
sc = new Scanner(System.in);
e=sc.nextInt();
switch(e)
{
case 1:
System.out.println("1.判断闰年,请输入年份");
Scanner sc1=new Scanner(System.in);//输入
year=sc1.nextInt();
a=judger(year);
if(a)
System.out.println("闰年");
else
System.out.println("非闰年");
break;
case 2:
System.out.println("2.判断某年某月有多少天,请分别输入年份,月份");
Scanner sc2=new Scanner(System.in);//输入
year=sc2.nextInt();
Scanner sc3=new Scanner(System.in);//输入
mon=sc3.nextInt();
b=judgeday(year,mon);
System.out.println(year+"年"+mon+"月:"+b+"天");
break;
case 3:
System.out.println("3.计算某年某月前距离1900年1月1日的总天数,请分别输入年份,月份");
Scanner sc4=new Scanner(System.in);//输入
year=sc4.nextInt();
Scanner sc5=new Scanner(System.in);//输入
mon=sc5.nextInt();
c=days(year,mon);
System.out.println(year+"年"+mon+"月"+"距离1900年1月1日的总天数:"+c);
break;
case 4:
System.out.println("4.输出某年某月日历,请分别输入年份,月份");
Scanner sc6=new Scanner(System.in);//输入
year=sc6.nextInt();
Scanner sc7=new Scanner(System.in);//输入
mon=sc7.nextInt();
rl(year,mon);
break;
case 5:
System.exit(0);
}
}
}
public static boolean judger(int year){//判断闰年
if(year%4==0&&year%100!=0)
return true;
else if(year%400==0)
return true;
else
return false;
}
public static int judgeday(int year,int mon){//判断某年某月有多少天
boolean a;
if(mon==4||mon==6||mon==9||mon==11)
return 30;
else if(mon==2)
{
a=judger(year);
if(a)
return 29;
else
return 28;
}
else if(mon>12)
{System.out.println("输入月份错误!");
return 0;}
else
return 31;
}
public static int days(int year,int mon)//距离1900年1月1日的总天数
{
int i,days=0;
boolean j;
for(i=1900;i<year;i++)//年
{
j=judger(i);
if(j)
days=days+366;
else
days=days+365;
}
for(i=mon-1;i>0;i--)//不包含此月
{
days=days+judgeday(year,i);
}
return days;
}
public static void rl(int year,int mon)
{
int a,b,c,i,j;
a=days(year,mon);
b=judgeday(year,mon);
c=a%7+1;//星期几
System.out.println(year+"年"+mon+"月1日:星期"+c);
System.out.println("日"+"\t"+"一"+"\t"+"二"+"\t"+"三"+"\t"+"四"+"\t"+"五"+"\t"+"六");
for(j=0;j<c;j++)
{
if(c==7)
break;
System.out.print(" \t");
}
for(i=1;i<=b;i++){
System.out.print(i+"\t");
if((c+1)%7==0)
System.out.print("\n");
c++;
}
System.out.print("\n");
}
}