Java 万年历

import java.util.Scanner;
public class calendar {
public static void main(String[] args) {
System.out.println("***********欢迎试用万年历*************");
Scanner input = new Scanner(System.in);
System.out.print("请选择年份:");
int year = 0;
do{
year = input.nextInt();
if(year<0){
System.out.print("年份输入有误,请重新输入:");
}
}while(year<0);
System.out.print("请选择月份:");
int month = 0;
do{
month = input.nextInt();
if(month <0 || month >12){
System.out.print("月份输入有误,请重新输入:");
}
}while(month <0 || month >12);
int days=0; //每月天数
int totalDayByYear=0; //输入日期距离1900年1月1日的总天数

boolean flagYear = ((year>0 && year%4==0 && year%100!=0) || year%400==0);

//根据每年的天数 获取 year到1900年的总天数
for(int i=1900; iif((i%4 ==0 && i%100!=0 || i%400==0)){
totalDayByYear = totalDayByYear + 366;
}else{
totalDayByYear = totalDayByYear + 365;
}
}
//根据每月的天数获取 month到1月1日的总天数
int totalDayByMonth = 0;
for(int i=1; iint flag = Test3.getDayByMonth(i, flagYear);
totalDayByMonth = totalDayByMonth + flag;
}
days = getDayByMonth(month, flagYear);

int sumDay =totalDayByYear+totalDayByMonth; //相差的总天数
if(flagYear){
System.out.println(year +"年是闰年,"+ month +"月共"+ days +"天");
}else{
System.out.println(year +"是平年,"+ month +"月共"+ days +"天");
}
System.err.println(year +"年"+month+"月距离1900年1月1日"+sumDay+"天");

int week =0; //星期几
week = 1 + sumDay%7;
System.out.println("星期天\t 星期一\t 星期二\t 星期三\t 星期四\t 星期五\t 星期六\t");
for(int i=0; iSystem.out.print("\t");
}
for(int i=1; i<=days; i++){
if(week==0){
System.out.print("\n");
}
System.out.print(" "+ i + " \t ");
week ++;
if(week ==7){
week = 0;
}
}

}
/**
* 根据月份获取当月天数
* @param month 当月月份
* @param flagYear 当年年份
* @return 返回当年当月的天数
*/
public static int getDayByMonth(int month, boolean flagYear){
int day = 0;
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day=31;
break;
case 2:
if(flagYear){
day =29; //闰年2月份29天
break;
}else{
day =28;
break;
}
default :
day =30;
break;
}
return day;
}
}

相关文档
最新文档