public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println(“你要查询的年份”);
int year=sc.nextInt();//记录要查询的年份
System.out.println(“你要查询的月份”);
int moon=sc.nextInt();//记录要查询的月份
int allYearDays=0;//声明一个变量为1900年到当前年之前所有的天数
int allMoonDays=0;//声明一个变量为当前年的当前月份之前所有的天数
int remainder=0;//声明一个变量为余数
int moonDays=0;//声明一个变量为任意一个月的总天数
//计算出1900年到当前年之前所有的天数
for(int i=1900;i<year;i++){
allYearDays+=(i%40&&i%100!=0||i%4000)?366:365;
}
//计算出当前年的当前月份之前所有的天数
for(int i=1;i<moon;i++){
if(i4||i6||i9||i11){
allMoonDays+=30;
}else if(i2){
allMoonDays+=(year%40&&year%100!=0||year%4000)?29:28;
}else{
allMoonDays+=31;
}
}
//计算出当前月是多少天
if(moon4||moon6||moon9||moon11){
moonDays=30;
}else if(moon2){
moonDays=(year%40&&year%100!=0||year%4000)?29:28;
}else{
moonDays=31;
}
//算出任意一个月的余数
remainder=(allMoonDays+allYearDays)%7;
//输出日历表
System.out.println(moon+"月份");
System.out.println("星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t星期日\t\n");
//输出月份前面有几个空格
for(int i=0;i<remainder;i++){
System.out.print("\t");
}
//给月份的天数排序
for(int i=1;i<=moonDays;i++){
if((i+remainder)%7==0){
System.out.println(i+"\t");
}else{
System.out.print(i+"\t");
}
}
}
}
Java日历生成器
本文介绍了一个使用Java编写的程序,该程序能够根据用户输入的年份和月份生成对应月份的日历。通过计算1900年至指定年份的所有天数,以及指定月份前的所有天数,程序可以确定每个月第一天是周几,从而正确地生成日历。
1642

被折叠的 条评论
为什么被折叠?



