简单的万年历
import java.util.*; public class Blank{ public static void main(String[] args){ Scanner input=new Scanner(System.in); System.out.println("选择年份(注必须大于1990年):"); int year=input.nextInt(); System.out.println("选择该年月份:"); int month=input.nextInt(); //先判断year是否是闰年 boolean Renyear;//定义布尔类型true or false if(year%4==0&&year%100!=0||year%400==0){ System.out.println(year+"是闰年"); Renyear=true; } else{ System.out.println(year+"是平年"); Renyear=false; } //记录当月的天数 int day=0; switch (month){ case 1:day=31;break; //case 2:day=28 or 29;break; case 3:day=31;break; case 4:day=30;break; case 5:day=31;break; case 6:day=30;break; case 7:day=31;break; case 8:day=31;break; case 9:day=30;break; case 10:day=31;break; case 11:day=30;break; case 12:day=31;break; default:if(Renyear){ day=29; } else{ day=28; } break; } System.out.print(year+"年"+month+"月"+"有"+day+"天"+"/t"); System.out.println(month+"月份的万年历如下:"); //统计从1990年到指定日期的天数,1990年1月1日为星期一。 int sum=0; //从1990年开始循环,循环次数是:指定年份—1990; for(int i=1990;i<year;i++){ //判断是否是闰年 if(i%4==0&&i%100!=0||i%400==0){ sum=sum+366; } else{ sum=sum+365; } } //统计月份的天数 for(int i=1;i<month;i++){ //大月 if(i==1||i==3||i==5||i==7||i==8||i==10||i==12){ sum=sum+31; } //小月 else if(i==4||i==6||i==9||i==11){ sum=sum+30; } //二月 else { if(Renyear) sum=sum+29; else sum=sum+28; } } //该公式起始时间是1990年1月1日,且1月1日是星期一。 int blank=sum%7+1;//blank开始输出的空格数 +1是从星期天开始; System.out.println("星期天/t星期一/t星期二/t星期三/t星期四/t星期五/t星期六"); int temp=1; for(int i=0;i<blank;i++){ System.out.print("/t"); temp++; } if(temp>7){ System.out.println(""); temp=1; } for(int i=1;i<=day;i++){ if(temp%7==0){ System.out.print(i+"/n");//控制换行 temp=1; } else{ System.out.print(i+"/t"); temp++; } } } }
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/10409.html