傅欽 2023-04-09 14:45 采纳率: 100%
浏览 32
已结题

java给年月来打印日历,输出有问题

输出的时候出现了问题,请各位帮忙看一下
题:输入年份以及月份,大于1900时打印出该年该月份的日历
思路:求1900年到输入年份之间的累计天数以及1月到输入月份之间的累计天数。得到1900-1-1到输入年月之前所有天数,用总天数对7求余,对余数加1,该数值即为该月1号的星期。判断输入月份有多少天,打印日历。
以下是代码:


import java.util.Scanner;
public class Calendar{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int year=sc.nextInt();
int month=sc.nextInt();
int r=0;
int sum=0;
if(year<1900){
  System.out.println("请输入大于或等于1900的年份");
}else{
  System.out.println("==================================================");
  System.out.println("日\t一\t二\t三\t四\t五\t六");

  for(int i=1900;i<year;i++){
    if((i%4==0&&i%100!=0)||i%400==0){
      sum+=366;
  }
  else{sum+=365;}
  }

  for(int i=1;i<=month;i++){
    switch(i){
       case 1:
       case 3:
       case 5:
       case 7:
       case 8:
       case 10:
       case 12:
       r=31;
       break;

       case 4:
       case 6:
       case 9:
       case 11:
       r=30;
       break;

       case 2:
       if ((year%4==0&&year%100!=0)||year%400==0){
       r=29;}
       else{
       r=28;}
       break; 
     }

     if(i<month)
     sum+=r;
  }

  System.out.println(sum);
  int count=(sum+1)%7;
  System.out.println(count);
  for(int i=1;i<=count;i++)
  System.out.print("\t");

  for(int i=1;i<=r;i++){
    System.out.printf("%d\t",i);

    if((i+count)%7==0)
    System.out.println();
  }

  System.out.println();
  System.out.println("=================================================");
}
}
  }

输出情况:

img

  • 写回答

5条回答 默认 最新

  • threenewbee 2023-04-09 14:50
    关注

    System.out.println(sum);
    System.out.println(count);
    这个去掉啊

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 4月17日
  • 已采纳回答 4月9日
  • 创建了问题 4月9日

悬赏问题

  • ¥15 爬取豆瓣电影相关处理
  • ¥15 手机淘宝抓清除消息接口
  • ¥15 C#无selenium
  • ¥15 LD衰减计算的结果过大
  • ¥15 用机器学习方法帮助保险公司预测哪些是欺诈行为
  • ¥15 计算300m以内的LD衰减
  • ¥15 数据爬取,python
  • ¥15 怎么看 cst中一个面的功率分布图,请说明详细步骤。类似下图
  • ¥15 为什么我的pycharm无法用pyqt6的QtWebEngine
  • ¥15 FOR循环语句显示查询超过300S错误怎么办