`
liangyi5555
  • 浏览: 9641 次
社区版块
存档分类
最新评论

万年历

阅读更多
System.out.println("*************欢迎使用万年历***************");
        System.out.print("\n请输入年份:");
        Scanner yearInput = new Scanner(System.in);
        int year = yearInput.nextInt();
        System.out.print("\n请输入月份:");
        Scanner monthInput = new Scanner(System.in);
        int month = monthInput.nextInt();

        // 当前月份的天数
        int days = 0;

        // 是否是闰年标识(true为闰年,false为平年)
        boolean isLeapYear;

        // 判断是闰年还是平年
        if ((year % 4 == 0) && !(year % 100 == 0) || (year % 400 == 0))
        {
            // 闰年
            isLeapYear = true;
        }
        else
        {
            // 平年
            isLeapYear = false;
        }

        // 计算从1900年开始到输入年份的总天数
        int totalDays = 0;

        for (int i = 1900; i < year; i++)
        {
            if ((i % 4 == 0) && !(i % 100 == 0) || (i % 400 == 0))
            {
                totalDays = totalDays + 366;// 闰年为366天
            }
            else
            {
                totalDays = totalDays + 365;// 平年为365天
            }
        }

        int beforeDays = 0;
        // 计算当前年份 从1月到输入月份的天数(计算输入月份之前的天数)
        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 (isLeapYear)
                    {
                        days = 29;
                    }
                    else
                    {
                        days = 28;
                    }
                    break;
                default:
                    days = 30;
                    break;
            }

            if (i < month)
            {
                beforeDays = beforeDays + days;
            }
        }

        // 从1900年1月1号到当前年月的天数
        totalDays = totalDays + beforeDays;

        // 计算星期几
        int firstDayOfMonth;// 存储当月第一天是星期几:星期日为0,星期一到星期六为1~6
        int temp = 1 + totalDays % 7; // 从1900年1月开始推算
        if (temp == 7)
        {
            firstDayOfMonth = 0;// 星期日
        }
        else
        {
            firstDayOfMonth = temp;
        }

        // 输出日历
        System.out.println("\n星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");
        for (int i = 0; i < firstDayOfMonth; i++)
        {
            System.out.print("\t");
        }

        for (int i = 1; i <= days; i++)
        {
            System.out.print(i + "\t");
            if ((totalDays + i) % 7 == 6)
            { // 如果当天为周六,输出换行
                System.out.println();
            }
        }

 

分享到:
评论

相关推荐

    万年历 万年历 桌面万年历

    《万年历:桌面日历的功能与应用》 在当今数字化时代,万年历作为一款实用的桌面工具,已经深入到人们的日常生活中。万年历不仅提供了日期查询的基本功能,更融合了多种实用特性,使其成为提升工作效率和生活便利性...

    微信小程序 万年历 (源码)

    微信小程序 万年历 (源码)微信小程序 万年历 (源码)微信小程序 万年历 (源码)微信小程序 万年历 (源码)微信小程序 万年历 (源码)微信小程序 万年历 (源码)微信小程序 万年历 (源码)微信小程序 万年历 (源码)微信小...

    微信小程序源码 万年历(学习版)

    微信小程序源码 万年历(学习版)微信小程序源码 万年历(学习版)微信小程序源码 万年历(学习版)微信小程序源码 万年历(学习版)微信小程序源码 万年历(学习版)微信小程序源码 万年历(学习版)微信小程序源码 万年历(学习...

    万年历_单片机万年历_LED1602_ds1302_51单片机_万年历_

    在电子技术领域,单片机应用广泛,尤其在日常生活中,如万年历的设计就是一个典型例子。本项目是关于一个基于51单片机的万年历系统,它结合了DS1302时钟芯片和LED1602液晶显示器,能够实现精确的时间显示和闹钟设置...

    source_万年历verilog_verilog_数字钟+万年历_万年历_

    本项目标题"source_万年历verilog_verilog_数字钟+万年历_万年历_"揭示了一个用Verilog实现的数字时钟与万年历功能的综合设计。这个设计不仅能够显示当前时间,还具备整点报时、时间调整以及秒数清零的功能。此外,...

    小程序源码 万年历 (代码+截图)

    小程序源码 万年历 (代码+截图)小程序源码 万年历 (代码+截图)小程序源码 万年历 (代码+截图)小程序源码 万年历 (代码+截图)小程序源码 万年历 (代码+截图)小程序源码 万年历 (代码+截图)小程序源码 万年历 (代码+...

    万年历制作全套资料

    万年历制作是一个涵盖多个IT领域知识的综合项目,它涉及到日期计算、用户界面设计、数据库存储、编程语言应用等多个方面。以下是对这些知识点的详细解释: 1. **日期计算**:万年历的核心功能是准确地显示日期,...

    VHDL多功能数字万年历

    VHDL多功能数字万年历 本资源是一个使用VHDL语言设计的多功能数字万年历,具有计时和年份显示功能。下面是对该资源的详细解释和知识点总结: 标题:VHDL多功能数字万年历 描述:用VHDL写的多功能数字万年历,计时...

    见过的最好用的万年历

    万年历,作为一种实用工具,通常用于查看公历、农历以及各种节气、节日等信息。在信息技术领域,实现一个高效、易用的万年历系统涉及到多种技术知识,包括编程语言、数据结构、时间计算算法以及用户界面设计。下面...

    stm32——万年历

    本项目利用STM32开发一款万年历,结合LCD12864显示器,实现日期、时间显示功能,并能持续更新。 在STM32中,万年历的实现主要依赖于RTC(Real-Time Clock)模块。RTC是一种低功耗时钟,可以独立于主处理器运行,...

    万年历1970-2100,带择日,节假,最全的

    《万年历1970-2100:全面解析与应用》 在信息化高度发展的今天,万年历作为一种实用工具,早已超越了传统的纸质形式,被广泛应用于电子设备中。本文将深入探讨万年历的核心内容,以及在Excel和MySQL数据库中的实现...

    万年历数据库.db文件

    《万年历数据库.db文件详解》 在信息技术领域,数据库是存储和管理数据的核心工具,而".db"文件则是SQLite数据库的一种常见格式。本文将深入探讨"万年历数据库.db"这一特定文件类型,了解其背后的原理、结构以及在...

    STM32万年历仿真,基于stm32的万年历设计,C/C++

    STM32万年历设计是嵌入式系统中常见的应用之一,主要目的是在微控制器上实现日期和时间的准确显示。在这个项目中,我们将重点讨论如何使用STM32微控制器来构建一个万年历,同时结合Proteus仿真工具进行验证。STM32是...

    万年历的设计与制作 论文撰写

    《万年历的设计与制作 论文撰写》 在信息技术高速发展的今天,万年历作为一项实用的技术,已经深入到日常生活的方方面面。本篇论文主要探讨了如何设计和制作一个功能完善的万年历系统,包括硬件电路设计、软件编程...

    带农历节假日的jQuery万年历插件_万年历_

    【万年历插件开发详解】 在Web开发中,万年历插件是一种常见的日历显示工具,尤其在处理日期选择、事件安排等场景中,它提供了方便的用户界面。本篇文章将深入探讨一个基于jQuery的万年历插件,该插件具有农历和节...

    Java简单的万年历

    Java简单的万年历程序是一种基于计算机程序设计的实用工具,主要功能是显示1900年以后的日期信息。在编程领域,实现这样的万年历通常涉及到日期和时间处理、循环逻辑以及用户友好的界面展示。对于初学者来说,这是一...

    mysql最全万年历数据库

    MySQL万年历数据库是一种用于存储和检索历法信息的数据库,尤其在开发日历应用、农历查询工具或者需要处理日期和时间相关业务的系统中非常有用。本数据库涵盖了1970年至2100年间的详细信息,包括但不限于公历日期、...

    1602 万年历 可调节

    "1602万年历可调节" 在这个项目中,我们使用了STC89C52单片机和1602液晶显示器来实现一个万年历的功能。该万年历可以显示年、月、日、星期、时、分、秒,可以通过按键来设置时间和日期。 首先,我们需要了解1602...

    万年历_单片机_万年历_温湿度_万年历lcd12864_万年历闹钟_

    在IT领域,尤其是在嵌入式系统设计中,"万年历_单片机_万年历_温湿度_万年历lcd12864_万年历闹钟"这个标题涉及了几个关键的技术点,包括单片机编程、万年历算法、温湿度传感器的应用以及LCD12864液晶显示屏的控制。...

Global site tag (gtag.js) - Google Analytics