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();
}
}
分享到:
相关推荐
《万年历:桌面日历的功能与应用》 在当今数字化时代,万年历作为一款实用的桌面工具,已经深入到人们的日常生活中。万年历不仅提供了日期查询的基本功能,更融合了多种实用特性,使其成为提升工作效率和生活便利性...
微信小程序 万年历 (源码)微信小程序 万年历 (源码)微信小程序 万年历 (源码)微信小程序 万年历 (源码)微信小程序 万年历 (源码)微信小程序 万年历 (源码)微信小程序 万年历 (源码)微信小程序 万年历 (源码)微信小...
微信小程序源码 万年历(学习版)微信小程序源码 万年历(学习版)微信小程序源码 万年历(学习版)微信小程序源码 万年历(学习版)微信小程序源码 万年历(学习版)微信小程序源码 万年历(学习版)微信小程序源码 万年历(学习...
在电子技术领域,单片机应用广泛,尤其在日常生活中,如万年历的设计就是一个典型例子。本项目是关于一个基于51单片机的万年历系统,它结合了DS1302时钟芯片和LED1602液晶显示器,能够实现精确的时间显示和闹钟设置...
本项目标题"source_万年历verilog_verilog_数字钟+万年历_万年历_"揭示了一个用Verilog实现的数字时钟与万年历功能的综合设计。这个设计不仅能够显示当前时间,还具备整点报时、时间调整以及秒数清零的功能。此外,...
小程序源码 万年历 (代码+截图)小程序源码 万年历 (代码+截图)小程序源码 万年历 (代码+截图)小程序源码 万年历 (代码+截图)小程序源码 万年历 (代码+截图)小程序源码 万年历 (代码+截图)小程序源码 万年历 (代码+...
万年历制作是一个涵盖多个IT领域知识的综合项目,它涉及到日期计算、用户界面设计、数据库存储、编程语言应用等多个方面。以下是对这些知识点的详细解释: 1. **日期计算**:万年历的核心功能是准确地显示日期,...
VHDL多功能数字万年历 本资源是一个使用VHDL语言设计的多功能数字万年历,具有计时和年份显示功能。下面是对该资源的详细解释和知识点总结: 标题:VHDL多功能数字万年历 描述:用VHDL写的多功能数字万年历,计时...
万年历,作为一种实用工具,通常用于查看公历、农历以及各种节气、节日等信息。在信息技术领域,实现一个高效、易用的万年历系统涉及到多种技术知识,包括编程语言、数据结构、时间计算算法以及用户界面设计。下面...
本项目利用STM32开发一款万年历,结合LCD12864显示器,实现日期、时间显示功能,并能持续更新。 在STM32中,万年历的实现主要依赖于RTC(Real-Time Clock)模块。RTC是一种低功耗时钟,可以独立于主处理器运行,...
《万年历1970-2100:全面解析与应用》 在信息化高度发展的今天,万年历作为一种实用工具,早已超越了传统的纸质形式,被广泛应用于电子设备中。本文将深入探讨万年历的核心内容,以及在Excel和MySQL数据库中的实现...
《万年历数据库.db文件详解》 在信息技术领域,数据库是存储和管理数据的核心工具,而".db"文件则是SQLite数据库的一种常见格式。本文将深入探讨"万年历数据库.db"这一特定文件类型,了解其背后的原理、结构以及在...
STM32万年历设计是嵌入式系统中常见的应用之一,主要目的是在微控制器上实现日期和时间的准确显示。在这个项目中,我们将重点讨论如何使用STM32微控制器来构建一个万年历,同时结合Proteus仿真工具进行验证。STM32是...
《万年历的设计与制作 论文撰写》 在信息技术高速发展的今天,万年历作为一项实用的技术,已经深入到日常生活的方方面面。本篇论文主要探讨了如何设计和制作一个功能完善的万年历系统,包括硬件电路设计、软件编程...
【万年历插件开发详解】 在Web开发中,万年历插件是一种常见的日历显示工具,尤其在处理日期选择、事件安排等场景中,它提供了方便的用户界面。本篇文章将深入探讨一个基于jQuery的万年历插件,该插件具有农历和节...
Java简单的万年历程序是一种基于计算机程序设计的实用工具,主要功能是显示1900年以后的日期信息。在编程领域,实现这样的万年历通常涉及到日期和时间处理、循环逻辑以及用户友好的界面展示。对于初学者来说,这是一...
MySQL万年历数据库是一种用于存储和检索历法信息的数据库,尤其在开发日历应用、农历查询工具或者需要处理日期和时间相关业务的系统中非常有用。本数据库涵盖了1970年至2100年间的详细信息,包括但不限于公历日期、...
"1602万年历可调节" 在这个项目中,我们使用了STC89C52单片机和1602液晶显示器来实现一个万年历的功能。该万年历可以显示年、月、日、星期、时、分、秒,可以通过按键来设置时间和日期。 首先,我们需要了解1602...
在IT领域,尤其是在嵌入式系统设计中,"万年历_单片机_万年历_温湿度_万年历lcd12864_万年历闹钟"这个标题涉及了几个关键的技术点,包括单片机编程、万年历算法、温湿度传感器的应用以及LCD12864液晶显示屏的控制。...