2020.8.14;日历输出,实现任意输出一个月的日历(简洁版)

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%40&&i%100!=0||i%4000){
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%40&&year%100!=0||year%4000) {
sum+=29;day=29;
}else {
sum+=28;day=28;
}break;
}
}
//填充日期
int weekday=sum%7; //总天数取余数
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((i+sum)%7==0){ //控制换行
System.out.println(i+"\n");
}else{
System.out.print(i+"\t"); //for循环打印每天对应的日历
}
}
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值