输出指定年份的日历

qq_43051072 2019-05-08 04:31:24
提示用户输入一个年份和代表该年第一天是星期几的数字。说明星期日到星期六用0-6表示。 程序依次输出该年每个月的日历。 运行实例: 输入年份:2017 该年第1天是星期几:0 求解!!非常感谢!!
...全文
473 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_43051072 2019-05-12
  • 打赏
  • 举报
回复
引用 2 楼 weixin_43273269的回复:
[quote=引用 楼主 qq_43051072 的回复:] 提示用户输入一个年份和代表该年第一天是星期几的数字。说明星期日到星期六用0-6表示。 程序依次输出该年每个月的日历。 运行实例: 输入年份:2017 该年第1天是星期几:0 求解!!非常感谢!!
结贴啊大哥[/quote] 我想问如何设置一个循环,让用户只能输入(0-6),输入其它数字则提示输入有误,请重新输入?
qq_43051072 2019-05-12
  • 打赏
  • 举报
回复
引用 5 楼 weixin_43273269的回复:
你加个if语句判断一下就行了
我试了一下,用while(true)+if语句,但是只能输出第1个月的日历,第2个月及往下的日历都无法输出,你能看看是怎么回事吗?
阿部仲麻吕 2019-05-12
  • 打赏
  • 举报
回复
你加个if语句判断一下就行了
qq_43051072 2019-05-09
  • 打赏
  • 举报
回复
引用 2 楼 weixin_43273269的回复:
[quote=引用 楼主 qq_43051072 的回复:] 提示用户输入一个年份和代表该年第一天是星期几的数字。说明星期日到星期六用0-6表示。 程序依次输出该年每个月的日历。 运行实例: 输入年份:2017 该年第1天是星期几:0 求解!!非常感谢!!
结贴啊大哥[/quote] OK了,已结贴,感谢感谢。
阿部仲麻吕 2019-05-09
  • 打赏
  • 举报
回复
引用 楼主 qq_43051072 的回复:
提示用户输入一个年份和代表该年第一天是星期几的数字。说明星期日到星期六用0-6表示。 程序依次输出该年每个月的日历。 运行实例: 输入年份:2017 该年第1天是星期几:0 求解!!非常感谢!!
结贴啊大哥
阿部仲麻吕 2019-05-08
  • 打赏
  • 举报
回复

public class JudgeWeekday {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        Scanner input = new Scanner(System.in);
        // Prompt the user to enter input
        System.out.print("请输入一个年份: ");
        int year = input.nextInt();

        System.out.print("请输入该年以星期几开始: ");
        int firstDay = input.nextInt();

        int startDay = firstDay;
        int numberOfDaysInMonth = 0;

        // Display calendar for each month
        for (int month = 1; month <= 12; month++) {
            // Display Calendar title
            System.out.print("          ");
            switch (month) {
                case 1:
                    System.out.println("一月 " + year);
                    numberOfDaysInMonth = 31;
                    break;
                case 2:
                    System.out.println("二月 " + year);
                    if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))
                        numberOfDaysInMonth = 29;
                    else
                        numberOfDaysInMonth = 28;
                    break;
                case 3:
                    System.out.println("三月 " + year);
                    numberOfDaysInMonth = 31;
                    break;
                case 4:
                    System.out.println("四月 " + year);
                    numberOfDaysInMonth = 30;
                    break;
                case 5:
                    System.out.println("五月 " + year);
                    numberOfDaysInMonth = 31;
                    break;
                case 6:
                    System.out.println("六月 " + year);
                    numberOfDaysInMonth = 30;
                    break;
                case 7:
                    System.out.println("七月 " + year);
                    numberOfDaysInMonth = 31;
                    break;
                case 8:
                    System.out.println("八月 " + year);
                    numberOfDaysInMonth = 31;
                    break;
                case 9:
                    System.out.println("九月 " + year);
                    numberOfDaysInMonth = 30;
                    break;
                case 10:
                    System.out.println("十月 " + year);
                    numberOfDaysInMonth = 31;
                    break;
                case 11:
                    System.out.println("十一月 " + year);
                    numberOfDaysInMonth = 30;
                    break;
                case 12:
                    System.out.println("十二月 " + year);
                    numberOfDaysInMonth = 31;
                    break;
            }

            System.out.println("-----------------------------");
            System.out.println("  日   一  二  三  四   五  六");

            // Pad space before the first day of the month
            int i = 0;
            for (i = 0; i < startDay; i++)
                System.out.print("    ");

            for (i = 1; i <= numberOfDaysInMonth; i++) {
                if (i < 10)
                    System.out.print("   " + i);
                else
                    System.out.print("  " + i);

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

            System.out.println();
            System.out.println();

            // Get the start day for the next month
            startDay = (startDay + numberOfDaysInMonth) % 7;
        }
    }

}
效果:

50,526

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧