public class Calendar {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
System.out.print("请输入要查询的年份");
int year=in.nextInt(); //接收年份保存在year中
System.out.print("请输入要查询的月份");
int month=in.nextInt(); //接收月份保存在month中
int sum=0,day=0;
//计算到1900年的总天数 ---总天数等于从1900年起到year年的所有天数加上到month的天数
for(int i=1900;i<year;i++){ //for循环实现天数的累加
if(i%4==0&&i%100!=0||i%400==0){
sum+=366;
}else{
sum+=365;
}
}
//计算到当前月的总天数并计算每个月的天数
for(int j=1;j<month;j++){ //switch语句控制天数,for循环实现天数的累加
switch(j){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
sum+=31;day=31;
break;
case 4:
case 6:
case 9:
case 11:
sum+=30;day=30;
break;
case 2:
if(year%4==0&&year%100!=0||year%400==0) {
sum+=29;day=29;
}else {
sum+=28;day=28;
}break;
}
}
//填充日期
int weekday=sum%7+1; //总天数取余数,日历从星期日开始打印,再+1 代表上个月的最后一周占这个月的几天
System.out.println("日\t一\t二\t三\t四\t五\t六");
for(int i=1;i<=weekday;i++){
System.out.print("\t"); //跳过上个月多出的日期
}
//输出日历
for(int i=1;i<=day;i++){
if(sum%7+1==6){ //控制换行
System.out.print(i+"\n");
}else{
System.out.print(i+"\t"); //for循环打印每天对应的日历
}
sum++;//控制每次换行
}
}
}
JAVA实现打印日历
最新推荐文章于 2024-07-27 23:32:11 发布