Java 万年历
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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; i
totalDayByYear = totalDayByYear + 366;
}else{
totalDayByYear = totalDayByYear + 365;
}
}
//根据每月的天数获取 month到1月1日的总天数
int totalDayByMonth = 0;
for(int i=1; i
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; i
}
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;
}
}