您的位置:首页 > 其它

万年历(实现从键盘输入1900年之后的任意的某年、某月,输出该月的日历)

2018-01-08 09:40 921 查看
import java.util.Scanner;

public class Test22{
public static void main(String [] args){
int year;//保存输入的年
int month;//保存输入的月
int days=0;//保存月份的天数
int totalDays=0;//存放总的天数差
boolean isRn;//判断输入的年是否是闰年,是的话true,不是false
Scanner input=new Scanner(System.in);
System.out.println("***************万年历**************");
System.out.println("请输入年:");
year=input.nextInt();
System.out.println("请输入月:");
month=input.nextInt();
if(year%400==0||(year%4==0&&year%100!=0)){
isRn=true;//代表闰年
}else{
isRn=false;//代表平年
}
if(isRn){
System.out.println(year+"是闰年");
}else{
System.out.println(year+"是平年");
}

//计算年的总天数
for(int i=1900;i<year;i++){
if(i%400==0||(i%4==0&&i%100!=0)){
totalDays+=366;
}else{
totalDays+=365;
}
}

//计算你输入月份的天数
for(int i=1;i<=month;i++){
switch(i){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days=31;
break;
case 2:
if(isRn){
days=29;
}else{
days=28;
}
break;
case 4:
case 6:
case 9:
case 11:
days=30;
break;
default:
System.out.println("输入的月份有误");
break;

}

//累加求和,输入月份的天数保存到days变量中,但不累加进来
if(i!=month){
totalDays+=days;
}
 }
//求这个月的第一天是星期几.也就是输出的\t的个数
int beforeDays=0;
beforeDays=1+totalDays%7;
if(beforeDays==7){
beforeDays=0;
}

//打印输出
System.out.println("星期天\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");
//先打印输出\t的个数
for(int i=0;i<beforeDays;i++){
System.out.print("\t");
}

for(int i=1;i<=days;i++){
System.out.print(i+"\t");
if((beforeDays+i)%7==0){
System.out.println();
}
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐