import java.util.Scanner;
//此为总结项目,用于完成万年历;
public class Test_old_4 {
/*
* */
public static boolean Run(int year){ // 此函数为判断年份是闰年还是平年
if((year%4==0&&year%100!=0)||(year%400==0)){
return true;
}
else{
return false;
}
}
/*
* 建立一个函数,完成星期的构建;这里以1900年1月1日为星期一
* */
public static int Weeks(int year,int month){
int day=0;
int week=0;
for(int i=1900;i<year;i++){
if(Run(i)){
day+=366;
}
else{
day+=365;
}
}
for(int j=1;j<month;j++){
day+=MonthDay(year,j);
//week=(day+1)%7;
}
//System.out.println("此月第一天距离1900-1-1:"+day+"天");
return day;
}
public static int MonthDay(int year,int month){
int day=30;
switch (month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day=31;
break;
case 2:
if(Run(year)){
day=29;
}
else{
day=28;
}
}
return day;
}
public static void main(String[] args) {
int year,month;//year 和 month分别表示年月
int day;//表示这个月的 第一天是星期几
int days;//days表示输入的时间距离1900-1-1多少天;
int icount=0;//计数器换行
int monthDay=0;//此月份有几天
Scanner input = new Scanner(System.in);
System.out.println("******万年历*****");
System.out.println("输入你要查询的年");
year = input.nextInt();
System.out.println("输入你要查询的月");
month = input.nextInt();
monthDay=(MonthDay(year,month));
/*if(Run(year)){
System.out.println(year+"是闰年");
}
else{
System.out.println(year+"是平年");
}*/
//System.out.println(year+"年"+month+"月一共有"+MonthDay(year,month)+"天");
//System.out.println(year+"年"+month+"月的第一天是星期"+(Weeks(year,month)));
days = Weeks(year,month);
days++;
day = days%7;
//System.out.println(year+"-"+month+"是星期"+day);
System.out.print("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六"+"\n");
for(int i=0;i<day;i++){
System.out.print("\t");
icount++;
}
for(int i=1;i<=monthDay;i++){
System.out.print(i+"\t");
icount++;
if(icount%7==0){
System.out.println();
}
}
}
}
|
|